addEventListener('click', test); 可以工作。
使用 addEventListener('click', test(parameter)); 函数会在加载时自动激活,而不是在点击按钮时。
问题:如何传递参数?
//create 3 button (n is a counter):
var btn = document.createElement("INPUT");
btn.setAttribute("id", "demo"+n);
btn.setAttribute("type", "button");
btn.setAttribute("value", ("click"));
document.body.appendChild(btn);
不带参数的调用是正常的:
function test(m) {
alert("YOU CLICKED ME!");
}
var m=0;
while(m!=3){
document.getElementById("demo"+m).addEventListener("click", test);
m=m+1;
}
使用参数无法工作(函数立即激活):
function test(m) {
alert("YOU CLICKED ME!"+m);
}
var m=0;
while(m!=3){
document.getElementById("demo"+m).addEventListener("click", test(m));
m=m+1;
}
m中得到循环中的最后一个值。 - jcubic