## 雷雷
onmouseover綁定的是一個事件回呼函數,只有觸發事件時才會執行該回呼函數,但在此之前循環已經結束,所以每次觸發事件得到的都是最後的值(i=5),解決此問題可以採用IIFE(立即執行函數),如下
for (var i = 0,len = li.length; i < len; i++){ li[i].index = i; // do something... li[i].onmouseover = (function (index){ console.log(index); })(i) console.log(i); }
沒看錯的話,後面那個i變數已經在循環外,之前賦值已經被替換掉了。如果想全部存儲,請申明為json或拼接字串
雷雷
onmouseover綁定的是一個事件回呼函數,只有觸發事件時才會執行該回呼函數,但在此之前循環已經結束,所以每次觸發事件得到的都是最後的值(i=5),解決此問題可以採用IIFE(立即執行函數),如下
沒看錯的話,後面那個i變數已經在循環外,之前賦值已經被替換掉了。如果想全部存儲,請申明為json或拼接字串
雷雷