大多数jQuery插件绑定/绑定到DOM节点,当你第一次初始化它们。
$('#foo').bar({options: ...});
如何查看当前绑定到DOM节点的插件或对象,如#foo?
if($('#foo').bar) if($.inArray('bar',$('#foo').eq(0))) if($('#foo').eq(0).indexOf('bar')) if($('#foo').hasOwnProperty('bar'))
例如,可以获得绑定到这样的对象的事件
console.log($('#foo').data('events'));
解决方法
除非插件本身定义了一些改变它正在工作的元素的方法,这是不可能的。例如:
$.fn.extend({ foo: function() { console.log("I am foo!"); } }); $('#bar').foo();
在这里,我定义了一个完整的(很好,更多的)jQuery插件,甚至不尝试与其调用元素进行交互。仍然,你可以使用它,任何jQuery封装的元素集合,因为任何jQuery封装的元素集合的原型中有这个方法,因为这行(从jquery.js):
jQuery.fn = jQuery.prototype = { ... }
… after $ .fn.extend被调用插入该插件,没有双关语意图。
$.fn.extend({ bar: function() { this.html('I am all bar now!'); } }); $('#bar').bar();
…我仍然需要,基本上,处理这个与一些外部事件(DOM Mutation的),而不只是依赖于一些内部的jQuery日志记录。