使用箭头函数回调添加和删除事件监听器
Add and Remove an Event Listener with an arrow function callback
我正在尝试使用 javascript
添加和删除按钮的事件侦听器
回调:
let callback = (id) => alert(`This is a test Callback with id : ${id}`);
当我将它与这样的事件侦听器一起使用时它会起作用:
document.querySelector('#button').addEventListener('click', () => callback(id));
但是由于 arrow function
.
,我无法通过这种方法 removeEventListener
对此有适当的解决方法吗?
您需要引用完全相同的函数对象,以便能够再次删除该特定事件侦听器。
因此您必须将它存储到一个变量中,然后在 addEventListener 和 removeEventListener 调用中使用该变量。
let foo = () => callback(id);
document.querySelector('#button').addEventListener('click', foo);
// ...
document.querySelector('#button').removeEventListener('click', foo);
let func = () => callback(id);
document.querySelector('#button').removeEventListener('click', func);
我正在尝试使用 javascript
添加和删除按钮的事件侦听器回调:
let callback = (id) => alert(`This is a test Callback with id : ${id}`);
当我将它与这样的事件侦听器一起使用时它会起作用:
document.querySelector('#button').addEventListener('click', () => callback(id));
但是由于 arrow function
.
,我无法通过这种方法 removeEventListener
对此有适当的解决方法吗?
您需要引用完全相同的函数对象,以便能够再次删除该特定事件侦听器。
因此您必须将它存储到一个变量中,然后在 addEventListener 和 removeEventListener 调用中使用该变量。
let foo = () => callback(id);
document.querySelector('#button').addEventListener('click', foo);
// ...
document.querySelector('#button').removeEventListener('click', foo);
let func = () => callback(id);
document.querySelector('#button').removeEventListener('click', func);