gpt4 book ai didi

Javascript 对点击事件的关闭疑惑

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:42 25 4
gpt4 key购买 nike

我的 JS 代码:-

 var ul = document.createElement("ul");
for(var i=0; i<10; i++){
var li= document.createElement("li");
li.innerHTML='this is my li '+ i+ '.';
li.onclick = (function (){
return (function (){
alert(i);
})
})();
ul.appendChild(li);
}

document.body.appendChild(ul);

测试代码-- http://jsfiddle.net/VhfEh/112/

HTML View :-

this is my li 0.
this is my li 1.
this is my li 2.
this is my li 3.
this is my li 4.
this is my li 5.
this is my li 6.
this is my li 7.
this is my li 8.
this is my li 9.

当我点击任何 li 时,我得到 10.. 这是 i 的最大值或者是 i++值(value)..

我尝试了一些方法但它不起作用??

疑问:-

  • Function with in a function 不是 JavaScript 中的 Closure 吗?

  • 我使用的示例是 JavaScript Closure 示例 ??

谢谢!!

最佳答案

你真的很接近;您只是忘记了设置和使用带有该匿名函数的参数:

li.onclick = (function (i) {
return (function (){
alert(i);
})
})(i);

立即执行函数的全部意义在于为每个处理程序提供循环变量的私有(private)副本,因此您必须像那样将其实际作为参数传递。

关于Javascript 对点击事件的关闭疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19303152/

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