我想爲從數據庫動態填充的縮略圖設置onclick事件。我需要設置函數來處理參數,這是縮略圖所代表的大圖的ID。我現在的代碼將所有縮略圖設置爲指向#18。如果您在for循環看,它應該在17你可以附加一個處理函數的參數到循環中的一些元素的onclick事件嗎?
for (var i = 0; i < 18; i++) {
document.getElementById('tat' + i).onclick = function() { display(i); };
}
死了(我的縮略圖<img />
一切都具有id="tat0"
,id="tat1"
,id="tat2"
,id="tat3"
等) (display()
負荷較大的PIC的縮略圖代表到一個單獨的元素)
每個縮略圖獲取此onclick函數,所以我知道for循環通過其ID正確訪問每個(爲每個我逐步通過),爲什麼所有的display(i)
被分配到18?你能分配一個onclick函數來處理參數嗎?
的可能重複(http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem) – 2012-02-27 12:55:29
問題的底線[臭名昭著的Javascript環路問題?]:每個事件處理程序引用相同'i'。循環結束後,'i'的值爲'18'。解決方案是生成不共享相同變量的事件處理程序。這與'getElementById'和'onclick'都沒有關係。 – 2012-02-27 13:00:16
你是對的,我不得不拉回來以不同的方式: function initOnClick(){ \t var images = document.getElementById(「thumbs」)。getElementsByTagName(「img」); \t \t 爲(VAR t = 0時;噸
BillyNair
2012-04-14 18:59:10