[英]Basic JS Question, Arrow Function with a callback using parameters in addEventListener
我这里有一个基本的 function。 我希望能够将参数传递给它。 但是,它被addEventListener
调用。 现在,在阅读此处并进行研究后,我让它开始工作,所以如果我将 TOP 选项放入 - 它就可以工作。 当我使用底部选项时,就在它下面 - 它不起作用。 (如果我想使用参数则不行)。 我只是想知道一个基本的解释,为什么带回调的箭头 function 可以带参数,这是怎么回事? 不确定我是否很好地解释了我的问题。
for (i = 0; i < dots.length; i++) {
dots[i].addEventListener('click', (e) => imgChoose(e, i));
}
for (i = 0; i < dots.length; i++) {
dots[i].addEventListener('click', imgChoose);
}
var i = 0;
function imgChoose(e, i) {
var test = dots[i].className;
console.log(e);
}
它与箭头函数无关,你也可以使用普通函数。 重要的是当addEventListener 调用你的function 时,它只会传入一个参数:事件。 如果你想用两个参数调用 function,你可以,但你必须自己编写代码。
这是常规 function 的外观:
dots[i].addEventListener('click', function (e) { imgChoose(e, i) });
PS:如所写,您有一个变量i
用于所有点击回调。 所以他们都将使用i
的最终值,它等于dots.length
。 您应该在循环的初始化中创建i
,并确保使用let
而不是var
。
for (let i = 0; i < dots.length; i++) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.