检查jquery揭示模态是否有效,做一些事情

ame*_*wer 1 jquery modal-dialog

我试图运行一些javascript仅在揭示模式是活动的条件下.问题是,无论模态是否有效,我尝试过的方法都是真的.下面是我想要完成的一个例子.我试过:是可见方法,也是:主动.我正在使用zurb揭示模态.

html:

<div id="myModal" class="reveal-modal">
    <ul>
        <li>some list item</li>
        <li>some list item</li>
    </ul>
</div> <!--/myModal-->
Run Code Online (Sandbox Code Playgroud)

JS:

<script>
    if ($('#myModal:active').length){
        console.log('yes'); //always yes even when not revealed
    } else { 
        //do nothing
    }
</script>

//also tried if ($('#myModal').hasClass('someClass')) 
Run Code Online (Sandbox Code Playgroud)

编辑

当活动时有"可见性"的CSS:"可见",否则"隐藏"所以我尝试了以下,但它没有响应条件.任何想法为什么会发生?

if($("#myModal").css("visibility", "hidden").length > 0) {
    console.log('is hidden');
} else {
    console.log('is shown');
}
Run Code Online (Sandbox Code Playgroud)

这是带有Zurb选项的cookie代码,用于显示弹出窗口.

if (document.cookie.indexOf('visited=true') == -1) {
    var tenYears = 3600 * 1000 * 24 * 365 * 10;   //1000*60*60*24*15;//15days
    var expires = new Date((new Date()).valueOf() + tenYears);
    document.cookie = "visited=true;expires=" + expires.toUTCString() +  ";path=/";  //encodeURIComponent +
    // Zurb's popup reveal modal
    $('#myModal').reveal({
        animation: 'fadeAndPop', 
        animationspeed: 100,                      
        closeonbackgroundclick: true,              
        dismissmodalclass: 'close-reveal-modal'
    });
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*1x0 5

好像这个插件在点击时激活了一个"开放"类.所以你应该检查链接,如:

if($(".modal-link").hasClass('open')) {
    //do stuff when modal active
} else {
    //do stuff when modal not active
}
Run Code Online (Sandbox Code Playgroud)

更好的是:

if($("#my-Modal").is(":visible")) {
    //you get the point
}
Run Code Online (Sandbox Code Playgroud)