我试图写一个简单的条件,说如果显示div1,然后将div2的显示更改为none。但是,我希望对此进行实时更新。因此,只要div1显示为“网格”,div2就会消失。
<script>
if($('.div1').css("display") == "grid") {
$('div2').css({"display":"none"});
}
</script>
我在这里做错了什么?
最佳答案
只要您方便,一段JavaScript代码就不会神奇地运行,除非您以这种方式运行它。您编写的内容将只运行一次,然后继续。当事情发生变化时,JavaScript本身不会寻找。
您需要跟踪更改并在更改后运行代码。如果您正在为站点编写javascript,则您可能知道这些更改何时发生,因此可以在代码更改发生时执行它们。例如,如果用户div1
是按钮时grid
更改为click
,则可以将函数绑定到其click event
,以便处理这种情况。
一种更高级的方法是监视DOM上的更改并在发生更改时运行功能。您可以使用MutationObserver来执行此操作。您可以精确地执行所需的操作,例如if div changes to grid, run myFunction()
。
另一种方法是使函数按时间间隔运行,但这是一种过时的技术,容易出错和崩溃,因此绝不建议在javascript中使用它。