如何更改 javascript 中的 addEventListener 回调函数
How to change the addEventListener callback function in javascript
如何更改 addEventListener 中的函数。
//how do I turn this
button.addEventListener('click', test)
//into this
button.addEventListener('click', test2)
我可以使用 js 库。我有一个想法,我可以使用 removeEventListener 然后添加另一个事件侦听器,但我不知道如何在 javascript.
中添加 eventListener
要在按钮上切换 EventListener,您可以完全按照您的建议进行操作
button.addEventListener("click", test)
button.removeEventListener("click", test)
button.addEventListener("click, test2)
EventListener 本质上是两种事物之一。
- 接受事件对象作为输入参数的函数。
- 具有接受事件对象作为输入参数的 handleEvent 函数的对象。
要使 test2 成为 EventListener,它只需要是这两件事之一。
选项 1:作为函数
function test2(event) {
console.log(event)
}
button.addEventListener("click", test2)
选项 2:作为具有 handleEvent 函数的对象
const test2 = {
"handleEvent": (event) => {
console.log(event)
}
}
button.addEventListener("click", test2)
可在此处找到支持此操作的文档:
https://developer.mozilla.org/en-US/docs/Web/API/EventListener
这可以通过委托来完成,只需将每次函数分配给一个变量,然后从回调中调用该变量,如下所示:
let fn = () => {
alert('1');
fn = () => alert('2');
};
button.addEventListener('click', function () {
fn.apply(this, arguments);
});
<button id="button">OK</button>
如何更改 addEventListener 中的函数。
//how do I turn this
button.addEventListener('click', test)
//into this
button.addEventListener('click', test2)
我可以使用 js 库。我有一个想法,我可以使用 removeEventListener 然后添加另一个事件侦听器,但我不知道如何在 javascript.
中添加 eventListener要在按钮上切换 EventListener,您可以完全按照您的建议进行操作
button.addEventListener("click", test)
button.removeEventListener("click", test)
button.addEventListener("click, test2)
EventListener 本质上是两种事物之一。
- 接受事件对象作为输入参数的函数。
- 具有接受事件对象作为输入参数的 handleEvent 函数的对象。
要使 test2 成为 EventListener,它只需要是这两件事之一。
选项 1:作为函数
function test2(event) {
console.log(event)
}
button.addEventListener("click", test2)
选项 2:作为具有 handleEvent 函数的对象
const test2 = {
"handleEvent": (event) => {
console.log(event)
}
}
button.addEventListener("click", test2)
可在此处找到支持此操作的文档:
https://developer.mozilla.org/en-US/docs/Web/API/EventListener
这可以通过委托来完成,只需将每次函数分配给一个变量,然后从回调中调用该变量,如下所示:
let fn = () => {
alert('1');
fn = () => alert('2');
};
button.addEventListener('click', function () {
fn.apply(this, arguments);
});
<button id="button">OK</button>