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 }; });