搜尋

首頁  >  問答  >  主體

javascript - 事件中的列印循環變數的值時,為什麼是固定值。

## 雷雷

女神的闺蜜爱上我女神的闺蜜爱上我2795 天前873

全部回覆(3)我來回復

  • 某草草

    某草草2017-06-28 09:31:09

    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);
    }

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-28 09:31:09

    沒看錯的話,後面那個i變數已經在循環外,之前賦值已經被替換掉了。如果想全部存儲,請申明為json或拼接字串

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-28 09:31:09

    雷雷

    回覆
    0
  • 取消回覆