gpt4 book ai didi

Javascript addEventListener 异常

转载 作者:行者123 更新时间:2023-11-30 14:17:36 30 4
gpt4 key购买 nike

有人可以解释为什么这不会在点击时触发两次“listenerFn”吗

(function () {

document.querySelector("div").addEventListener("click", listenerFn);
document.querySelector("div").addEventListener("click", listenerFn);

function listenerFn() {
console.log("__testing__");
} })();

虽然像下面这样的东西触发了预期的两倍:

(function () {

myFunction()
myFunction()

function myFunction() {
function listenerFn() {
console.log('My Message')
}
document.querySelector('div').addEventListener('click', listenerFn)
} })();

最佳答案

原因是,在第一种情况下,您尝试添加函数 listenerFn 的相同实例,而在第二种情况下,您要添加两个不同的实例(甚至 myFunction() 调用都有自己的 listnerFn() 实例。

您可以像这样更新您的第一个代码示例,它应该可以工作:

(function () {

document.querySelector("div").addEventListener("click", getListenerFn());
document.querySelector("div").addEventListener("click", getListenerFn());

function getListenerFn() {
let listenerFn = function() {
console.log("__testing__");
}

return listenerFn;
}
})();

关于Javascript addEventListener 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53299407/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com