我试图为数组中的每个按钮分配一个函数。
简化问题我用简单的console.log交换了该函数的功能
当点击其中一个按钮时,控制台应该说"按钮编号"然后是相应的按钮编号(1,2,3 ......)而是始终返回最大按钮编号。
function buttoncount(){
dbuttons = document.getElementsByClassName("deletebutton");
for(var ii = 0; ii< dbuttons.length; ii++){
dbuttons[ii].onclick = function (){
console.log("button number"+ii);
}
}
}
提前致谢
答案 0 :(得分:1)
您必须确保为连续按钮捕获单独的闭包。其中一种方法是将实际函数包装在另一个立即执行的函数中。
function buttoncount(){
dbuttons = document.getElementsByClassName("deletebutton");
for(var ii = 0; ii< dbuttons.length; ii++){
dbuttons[ii].onclick = (function (x){
return function() {
console.log("button number"+x);
}
}(ii));
}
}