我有一个非常简单的带有 js 代码的 html 页面:
<html>
<head>
<title></title>
</head>
<body>
<div id="divButtons">
</div>
<script type="text/javascript">
var arrOptions = new Array();
for (var i = 0; i < 10; i++) {
arrOptions[i] = "option" + i;
}
for (var i = 0; i < arrOptions.length; i++) {
var btnShow = document.createElement("input");
btnShow.setAttribute("type", "button");
btnShow.value = "Show Me Option";
var optionPar = arrOptions[i];
btnShow.onclick = function() {
showParam(optionPar);
}
document.getElementById('divButtons').appendChild(btnShow);
}
function showParam(value) {
alert(value);
}
</script>
</body>
</html>
该页面绑定(bind)了 10 个按钮,但是当您单击任何按钮时,它总是显示警告“option9”。如何分配 onclick 事件来显示相应的选项!?
谢谢!
最佳答案
你必须做这样的事情:
btnShow.onclick = (function(opt) {
return function() {
showParam(opt);
};
})(arrOptions[i]);
关于Javascript - 在循环中动态分配 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040069/