javascript - 使用 jQuery UI Widget Factory 删除销毁事件的推荐方法

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

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

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

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

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

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

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

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

(预先)感谢您的帮助。

最佳答案

您可以在一个事件中绑定(bind)多个命名空间。因此,为您的实例分配一个 id,例如

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

然后

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

查看此fiddle

关于javascript - 使用 jQuery UI Widget Factory 删除销毁事件的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907368/

相关文章:

jquery - 如何导航到稍高于 anchor 标记的位置?

javascript - 如何从 Promise 将值返回到我的调用函数?

c# - 如何将 jquery 的 UI 自动完成与 ASP.NET 和外部数据源一起使用?

MVC3 应用程序内的 Jquery UI 自动完成

jquery - 如何在 jQuery UI 自动完成中设置至少两个字符?

javascript - ajax调用后Rails 4页面重新加载

javascript - 推特 Bootstrap3 : get current carousel index number via clicking and automatic

javascript - node.js toString编码

javascript - 使用谷歌地图 computeDistanceBetween 获取最近的位置返回 NaN

javascript - 单击按钮加载新的 json url 并更新 Angular 中的 View