我想知道我是如何窥探dom修改事件的。我尝试使用$ .sub()来监听,但是使用jquery中的另一个包装来获得这种影响似乎有点过量。
演示在这里http://jsfiddle.net/sr5RE/2/
即这是有效的
var $sub = jQuery.sub();
$sub.fn.init = function(selector){
alert("Success");
return $.fn.init.apply($sub.fn.init, arguments);
};
$sub("<p/>");
但是调用$然后它不会
$("<p/>");
显然这将循环
$.fn.init = function(selector){
alert("Success");
return $.fn.init.apply($sub.fn.init, arguments);
};
$("<p/>");
有什么想法吗?
答案 0 :(得分:2)
您可以覆盖$.fn.init
,只需先获取对原始引用的引用:
(function(){
var originalInit = $.fn.init;
$.fn.init = function(selector){
alert("Success: " + selector);
return originalInit.apply($sub.fn.init, arguments);
};
})();
$("<p/>");
演示:http://jsfiddle.net/sr5RE/3/
但是,这可能无法帮助您获取DOM修改事件。您可能想要了解Live Query的来源。它是一个jQuery插件,当匹配选择器的元素出现并从文档中消失时触发回调,它通过覆盖特定的与修改相关的jQuery方法来实现。