首页 > 解决方案 > 如何在jQuery中将事件分配给变量

问题描述

在不使用任何已弃用的东西(即:).bind()的情况下,有没有办法将事件分配给变量,以便我们以后可以关闭该确切事件?例如,如果我们有:

$(window).on('resize', function() {
    alert('Hello!');
});

我们可以稍后从该事件中定位函数调用并将其从调整大小事件中删除吗?我们可能还有其他 $(window).on('resize') 调用,但我不想在这些事件上停用这些函数调用。

如果我们这样做了$(window).off('resize');,那将为所有人关闭该事件。

标签: jqueryvariablesevents

解决方案


您可以命名该函数,然后在 vanilla JS 中引用它

var myCallable = function() { alert(“Hello World”); }

// add the event listener
window.addEventListener(‘resize’, myCallable);
window.addEventListener(‘resize’, function() {
  alert(“this call won’t be removed”);
});

// remove it later on...
window.removeEventListener(‘resize’, myCallable);

这只会删除该特定的函数调用,因为您直接引用它

注意:请原谅标点符号,我是在 iPhone 上输入的


推荐阅读