Javascript 如果div显示样式从无变为块,如何执行jQuery代码?
当div的样式从Javascript 如果div显示样式从无变为块,如何执行jQuery代码?,javascript,jquery,Javascript,Jquery,当div的样式从display:none更改时,我尝试执行jQuery代码至显示:块 我使用的是选项卡,这就是为什么这个div的样式会发生这样的变化,而这个jQuery代码应该只在查看这个选项卡时才运行 那么我如何才能做到这一点呢 谢谢 编辑:我尝试了.is(':visible')并且它只在我们加载页面并且这个div可见时才起作用,而不是在这个div稍后可见时 if($("#myTab").is(':visible')){ here is your code ... } 或 试着这样做
display:none更改时,我尝试执行jQuery代码代码>至<代码>显示:块代码>
我使用的是选项卡,这就是为什么这个div的样式会发生这样的变化,而这个jQuery代码应该只在查看这个选项卡时才运行
那么我如何才能做到这一点呢
谢谢
编辑:我尝试了.is(':visible')
并且它只在我们加载页面并且这个div可见时才起作用,而不是在这个div稍后可见时
if($("#myTab").is(':visible')){
here is your code ...
}
或
试着这样做:
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
}
您要查找的是,当插入、删除或修改DOM元素时,它会引发一个事件
不幸的是,他们从来没有得到很好的支持,而且
在任何情况下(不是双关语),在您的情况下,捕获导致选项卡显示的任何UI事件都会更简单。为什么不在用户单击另一个选项卡时执行代码?是的,这可能会起作用,但我想知道是否可以使用jQuery执行此操作,当有事情发生时收听?@Alnitak好的,所以我想我必须按照Celos上面建议的方式来做。@Peter是的,通常很容易捕捉到任何改变显示选项卡的事件。您的可见psuedo SELECTOR中缺少冒号无需担心,以为这只是一个输入错误。:)OP似乎希望引发一个事件,而不是测试可见性jQuery对象是否有权访问style
属性?我以为不会。所以$(“您的id”).style.display=“block”代码>不起作用。您必须将其更改为$(“您的id”)[0]。style.display=“block”
或$(“您的id”).get(0.style.display=“block”
或使用jQuery对象本身:$(“您的id”).attr('style','display:block')代码>或类似的东西我上面的评论是正确的。您提供的代码抛出语法错误。OP似乎希望引发事件,而不是测试可见性
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
}