彷佛是Jquery的一個Bug,由於通常來講,在任何狀況下都不該該重複觸發onload事件。html
重現Bug的代碼以下:jquery
$(function(){ $("#test").append('<img onload="alert(\'hi\')" src="Image.jpg">'); })
百般百度無果,最終在StackOverFlow上找到了一樣的問題:app
http://stackoverflow.com/questions/10816053/jquery-img-added-through-append-triggers-onload-twicehtm
該問題中給出的回答是Jquery在create和shift元素的時候都會致使觸發onload事件。聽上去並非很科學。不過至少給出了一種能夠避免Bug的寫法:事件
$(function() { $("#test").append( $("<img>").attr({ src: "Bachalpseeflowers.jpg", onload: "alert(\'hi\')" }) ); });
或者,能夠使用$('#test').html()方法代替append方法添加包含onload事件的圖片。圖片