這個jQuery 1.3.2代碼將一個元素添加到頁面,註冊一個「click」事件,然後刪除和重新佩戴元素:爲什麼從DOM中刪除一個元素時註冊的事件消失了?
var button = $('<button>Click me!</button>')
.click(function(){ alert("Hello") })
.appendTo('body');
$('body').html('');
button.appendTo('body');
出現預期頁面上的按鈕,但點擊它沒有。我想知道爲什麼事件處理程序已從對象中移除。
注:我知道的解決方案,如jQuery.live()
或clone(true)
或使用appendTo
沒有刪除。我正在尋找的是解釋,而不是解決方案或解決方法。
編輯:我想這可能是DOM的任意和反直覺的設計決定。像「因爲這是規範Y的X節希望它是這樣」的解釋就沒有問題。
您可以使用您正在使用的版本更新問題,也可以使用1.2.6,1.3.2和1.4 alpha版本更新問題。 – 2010-01-08 13:18:28