如何检查一个jQuery插件是否已经绑定到一个DOM节点?

前端之家收集整理的这篇文章主要介绍了如何检查一个jQuery插件是否已经绑定到一个DOM节点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
大多数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日志记录。

猜你在找的jQuery相关文章