动态创建参数的事件监听器

我使用 for 循环动态创建一系列按钮,并向它们添加事件侦听器,如下所示(为简单起见,我排除了几行代码)。但是,在创建后使用任何按钮时,参数“i”始终对应于退出 for 循环时“i”的值。我在网上看到了许多提出的解决方案,但没有一个真正有效。

 for (var i = 0; i < size; i++) {
    button.addEventListener('click', () => this.Purchase(i))
 }


千巷猫影
浏览 115回答 1
1回答

动漫人物

您应该使用let i = 0而不是var i = 0为了使i变量的作用域限于循环。对于var, ,i其作用域为最内层函数,这意味着它会不断被覆盖。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript