javascript - 如何在不中断同一插件的其他实例的情况下取消订阅事件?

标签 javascript jquery dom jquery-events

我创建了一个 jQuery 插件,它需要响应浏览器窗口的大小调整。它使用 jQuery 的事件命名空间机制订阅事件:

var $window = $(window);
$window.on("resize.myPlugin", function(e) {
    // my resize code
});

所以当插件被销毁时,我可以优雅地取消订阅而不会影响其他插件:

$window.off("resize.myPlugin");

但是,在这种情况下,如果我同时拥有同一个插件的多个实例会怎样?像上面那样调用 off 也会取消订阅它们的事件处理程序,因为它们使用相同的命名空间。

如何在不中断同一插件的其他实例的情况下取消订阅事件?

最佳答案

如果您希望同一个插件的其他实例共存,您可以为事件添加一个随机命名空间作为前缀,从而避免断开所有这些实例。

编辑:从手机发帖,我花时间写了。 :)

关于javascript - 如何在不中断同一插件的其他实例的情况下取消订阅事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342670/

相关文章:

php - 验证 php 中的 javascript 对象

java - 如何使用 DOM XML 解析器解析 XML 文档

javascript - Internet Explorer 中的 element.dataset

表单数据的 Javascript 计算返回 NaN

javascript - IE 会减慢超过 6-8 FPS 的动画 GIF。是否有修复程序或跨浏览器替代方案(Flash 除外)?

javascript - 无法创建动态 div 以在单击和返回时更改大小

javascript - Jquery数据表在搜索时计算页脚中的总和:

javascript - d3 多折线图工具提示值数据未定义

javascript - 无法从 jquery 中的函数返回 ajax responseText

javascript - Puppeteer page.content() - 将已解决的 promise 写入列表