JQuery不在$(document).change()上执行

我需要在页面/文档发生变化时执行一些JQuery – 在这种情况下,当显示具有特定CSS类的div时。

我有以下JQuery代码:

 $(document).change(function () { if ($('.validation_errors').length) { alert("test"); } }  

但是,它不会执行并显示警报。 我在这里错过了什么吗?

更改仅适用于输入,文本区域或选择元素。 相反,您需要将函数绑定到DOMSubtreeModified突变事件:

 $(document).bind('DOMSubtreeModified', function () { if ($('.validation_errors').length) { alert("test"); } }); 

编辑:如果您的目标浏览器支持它,您应该使用MutationObserver 。

您无法以这种方式监视DOM中的更改。 引用jQuery文档:

更改事件在其值更改时发送到元素。 此事件仅限于元素,框和元素。 – http://api.jquery.com/change/

如果你想在DOM更改时执行代码,你可能需要设置和间隔检查DOM或使用jQuery论坛上的海报提供的这种技术 。

DOMSubtreeModified事件,但它在当前的浏览器中几乎不可用,所以我个人不建议使用它。 有关详细信息,请参阅此stackoverflow答案

你的语法太错了! 如果您打算这样做,请在文档准备就绪,.change非常有限,不会在新页面上触发。

 $(document).ready(function(){ if($('.classOrId').length){ //do something if it exists }; });