Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果div显示样式从无变为块,如何执行jQuery代码?_Javascript_Jquery - Fatal编程技术网

Javascript 如果div显示样式从无变为块,如何执行jQuery代码?

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 ... } 或 试着这样做

当div的样式从
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
}