0
我有以下代碼爲什麼在Javascript中使用閉包時mouseover事件不起作用?
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
</ul>
var lists = document.getElementsByTagName("li");
for(var i=0, len = lists.length; i< len; i++){
lists[i].onmouseover = function(){
console.log(i);
}(i);
}
預期結果:當鼠標在每個li
,我在控制檯得到0或1或2或3,但刷新頁面時不mouseover
我只得到的那些數目,有人知道爲什麼嗎?
是必要的return語句? (i);'code'對不起,可能是這樣的: } }(i);'code'對不起, ,我不知道如何在評論中格式化代碼。 – user2301368 2013-05-06 07:06:46
是的,您也可以這樣做,您必須將立即執行的功能「上一級」。它雖然沒有改變,但它仍然以相同的方式工作。 – 2013-05-06 07:08:26
非常感謝Felix Kling,你的回覆非常詳細,我想我明白了你的觀點。 – user2301368 2013-05-06 07:13:04