我正在尝试使用for循环将事件监听器添加到按钮 在循环内部,我声明了一个匿名函数。基本测试(警报)正在运行 但是当我尝试调用外部类方法时,它将无法正常工作
该类在此循环之外运行 警报和整个代码运行正常(没有运行时错误)
我想念什么?
for (let i = 0; i < buttons.length; i++) {
(function() {
var j = i;
buttons[j].addEventListener(
'click',
function() {
alert('hello world ' + j);
classname0.method(buttons[j].id);
},
false,
);
})();
}
答案 0 :(得分:1)
您以这种方式编写函数
(function(){ ... }() )
代替
(function(){ ... })()
答案 1 :(得分:0)
也许您只需要“致电”即可在课堂上获得正确的“ this”。
classname0.method.call(classname0, buttons[j].id);