推荐使用jQuery UI Widget Factory删除destroy上的事件的方法

时间:2012-12-17 01:49:43

标签: javascript jquery-ui jquery jquery-ui-widget-factory

我正在使用jQuery UI Widget Factory来构建一个jQuery插件。

我的插件将自定义事件绑定到窗口...

_subscribe: function() {
  $(window).on("dragger.started", function() { ... });
}

我想知道在插件的特定实例被销毁时如何去除这些事件。如果我用......

destroy: function() {
  $(window).off("dragger.started");
}

...然后这会弄乱页面上插件的任何其他实例,因为它会删除所有“dragger.started”事件。

建议只销毁与插件实例相关的事件的方法是什么?

先谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您可以在事件中绑定多个名称空间。因此,为您的实例分配一个像

的ID
//this.id = 'dragger_' + guid_or_static_count
$(window).on("dragger.started." + this.id, function() { ... });

以后

$(window).off('dragger.' + this.id);

请参阅此fiddle

答案 1 :(得分:0)

你用什么来摆脱这个实例?我相信jQuery remove()会删除绑定事件。