在 jQuery 中,当您设置一个事件时,您可以为其命名空间。这意味着(如果您愿意)您可以有多个调整窗口大小的事件,例如,并且能够单独解除绑定(bind)它们而不解除绑定(bind)该选择器上的所有事件。
jQuery 命名空间示例:
$(window).on('scroll.myScrollNamespace, function() ...
我想知道如何在纯 JavaScript 中创建命名空间。这显然行不通:
window.addEventListener('resize.myScrollNamespace', function() ...
最佳答案
如果不是匿名函数:
window.addEventListener('resize', function () {...});
你使用命名函数:
window.addEventListener('resize', function myScroll() {...});
那么你可以使用:
window.removeEventListener('resize', myScroll);
确保您有 myScroll
在适用范围。当你在不同的地方删除监听器而不是添加它们时,也许你应该在一些外部范围内定义你的函数并在 addEventListener
中使用它们的名称。与 removeEventListener
中的方式相同:
function myScroll() {
// ...
}
window.addEventListener('resize', myScroll);
window.removeEventListener('resize', myScroll);
如果您希望能够一次移除多个监听器,那么您必须将它们存储在某个数组中,并为其每个元素调用 removeEventListener。
关于javascript - 像 jQuery 中那样的命名空间普通 JavaScript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800882/