如果div显示样式从none变为block,如何执行jQuery代码?

时间:2012-04-30 10:41:19

标签: javascript jquery

当div的样式从display: none;更改为display: block;

时,我正在尝试执行jQuery代码

我正在使用制表符,这就是为什么这个div的样式会改变这样的原因,而这个jQuery代码只应在仅查看此选项卡时运行。

那我怎么能实现这个目标呢?

并谢谢。

编辑:我尝试了.is(':visible');,只有在我们加载页面并且此div可见时才有效,而不是稍后可以看到此div。

4 个答案:

答案 0 :(得分:2)

if($("#myTab").is(':visible')){
    here is your code ...
}

答案 1 :(得分:2)

尝试这样的事情:

if($(DIV).is(':visible')) {   // DIV => valid selector of your target
   // execute your code
}

if($('body').on('EVENTNAME', 'DIV:visible')) {   // DIV => valid selector of your target
   // execute your code
}

答案 2 :(得分:2)

您正在寻找的是DOM Mutation Events,它可以在插入,删除或修改DOM元素时引发事件。

不幸的是,他们从来没有得到很好的支持,were deprecated in DOM3

无论如何(在没有双关语意图的情况下),在你的情况下,捕捉任何导致标签显示的UI事件会更简单。

答案 3 :(得分:-1)

$(document).ready(function(){
    $(your tab container).click(function(){
        //set none property to all of your id's
        var obj=$this;
        if(obj){
            $("your id").style.display="block"; // set block to your current item
        }
    });
});

if($("you id").is('visible')){
    //do it
}