2

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

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

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

我想知道当插件的特定实例被破坏时如何删除这些事件。如果我用...

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

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

仅销毁与插件实例关联的那些事件的推荐方法是什么?

在此先感谢您的帮助。

4

2 回答 2

2

您可以在一个事件中绑定多个命名空间。所以给你的实例分配一个像

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

然后

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

看到这个小提琴

于 2012-12-17T22:28:57.490 回答
0

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

于 2012-12-17T02:01:53.033 回答