我在頁面上有一堆元素,其ID全部存儲在名爲ids []的數組中。將函數分配給事件處理函數後,變量保持不變
我已經初始化了第三方DOM腳本,用於檢測元素何時被拖動的每個div。下一步是爲每個元素的onDrag事件分配一個函數。
爲簡單起見,我只想顯示一個彈出對話框,指出被拖動元素的ID。我通過我的數組迭代如下:
for (i=0;i<ids.length;i++)
{
document.getElementById(ids[i]).onDrag = function(){alert(ids[i])}
}
這一切似乎都不錯,但觸發我的任何元素的拖動事件導致一個對話框彈出,指出數組中的最後一個元素的ID。換句話說,它在我的迭代中看起來像上面的函數總是爲我的數組中的最後一個索引進行評估。我覺得我在這裏錯過了一些非常簡單的事情,但這個問題正在讓我瘋狂。
看到這個:http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical例如 – 2010-10-30 23:53:49