jsfiddle example link

似乎jQuery $.hide()$.show()不会修改DOM来隐藏/显示元素,因此不会触发DOMSubtreeModified事件。如何在DOM的任何元素上捕获此类事件?

谢谢。

更新:
该代码在Chrome16 Ubuntu上不起作用。最初,我需要针对基于Webkit的QT浏览器。

最佳答案

您是正确的,DOMSubtreeModified仅用于修改,因此您有几种选择:

1)使用DOMAttrModified,它的支持程度甚至不及DOMSubtreeModified

2)在jQuery中覆盖.hide().show()方法,以便您可以捕获对它们的任何调用并做出响应:

var oldShow = $.fn.show;
$.fn.show = function(args) {
    alert('showing!');
    oldShow.apply(this, arguments);
};
// do the same for .hide()


3)循环运行某种“监视器”(例如setInterval()),查看可见的子计数或有影响的东西

4)重新组织您思考问题的方式...

希望这对您有帮助-ck

关于javascript - DOMSubtreeModified不会在$ .hide()和$ .show()上触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9488157/

10-11 05:57