2010-08-15 76 views
5

的第一次執行它正確地產生的代碼:
負載完整jQuery的.load()回調函數觸發多次

但第二時間它產生:
負載完整
負載完整

的3ND時間它產生:
負載完整
負載完整
負載完整

等...所以第20次加載函數完成回調函數被觸發20次。

$('#image-tag').load(function() { 
     console.log("load complete"); 
    }); 
}).attr('src', 'image.jpg').appendTo('#main'); 

任何想法是什麼導致回調函數重複/增加像這樣?

+0

請出示完整的代碼 – 2010-08-15 21:53:08

回答

10

這是因爲您每次運行該代碼時都要添加另一個事件處理程序。

如果您想要將圖像標籤附加到元素中,則不應使用已存在於頁面中的圖像。創建一個新的圖片廣告代碼:

$('<img/>').load(function() { 
    console.log("load complete"); 
}).attr('src', 'image.jpg').appendTo('#main'); 
+0

唉唉tottally錯過了,謝謝! – Moudy 2010-08-15 22:21:52

+0

非常感謝你。我一直不知道將一些東西綁定到一個循環內的元素上,這對第二次執行造成了麻煩。 '$(#IMG).unbind( '負荷')負載(函數(){...});' – Lg102 2011-12-13 11:26:58

17

它woulds就像你調用這個click處理或其他東西在裏面,這種結合每次.load()處理程序。無論是綁定.load()一次,或使用.one(),像這樣:

$('#image-tag').one('load', function() { 
    console.log("load complete"); 
});