gpt4 book ai didi

Javascript 在循环内绑定(bind)点击处理程序

转载 作者:行者123 更新时间:2023-12-02 18:34:01 25 4
gpt4 key购买 nike

我正在尝试创建几个链接并在循环内将 onclick 处理程序绑定(bind)到它们。单击链接时,我想显示一个警告框,指示链接编号(1 表示第一个链接,2 表示第二个链接,3 表示第二个链接,依此类推)。

<html>
<body>
</body>
</html>

<script type = 'text/javascript'>
for (var i = 0; i < 10; i++) {
var link = document.createElement("a");
link.innerHTML = "Link " + i;
link.href = '#';
link.onclick = function () {
alert("This is the link " + i);
return false;
};
document.body.appendChild(link);
}
</script>

出于某种原因,当我可以单击任何链接时,我会收到相同的警报消息“这是链接 10”。

是否是因为警报函数的参数只有在调用该函数时才绑定(bind)?因为循环结束后最终i的值为10。

最佳答案

简单的答案,使用closure :

link.onclick = (function(j) {
return function(){
alert ("This is the link " + j);
return false;
}
})(i);

关于Javascript 在循环内绑定(bind)点击处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com