我有一個超鏈接與ID單擊時將使用JQuery執行某個事件。 JQuery在文檔加載中記錄這個鏈接的存在。用戶訪問過程中的一段時間。我刪除該鏈接並稍後重新添加。但是,即使在刪除並添加鏈接後單擊該鏈接時,該鏈接也不會再次被觸發。再次添加,刪除和添加元素刪除其事件
爲什麼是這種情況,我該如何補救?有關事件綁定的事情?或者我應該只添加一個onclick屬性?
我有一個超鏈接與ID單擊時將使用JQuery執行某個事件。 JQuery在文檔加載中記錄這個鏈接的存在。用戶訪問過程中的一段時間。我刪除該鏈接並稍後重新添加。但是,即使在刪除並添加鏈接後單擊該鏈接時,該鏈接也不會再次被觸發。再次添加,刪除和添加元素刪除其事件
爲什麼是這種情況,我該如何補救?有關事件綁定的事情?或者我應該只添加一個onclick屬性?
你使用這樣的標籤添加單擊事件被將事件綁定到當時選定的元素。
刪除鏈接並重新添加鏈接將有效地創建一個新元素,而不會發生此事件。
$('#speciallink').live("click",function(){
// do something
return false;
});
不要從DOM樹中刪除鏈接。相反,只需使用show()和hide()切換其可見性即可。
使用remove()從DOM樹中刪除元素將刪除該元素及其所有事件處理程序,即使您將其添加回相同的id也是如此。
您需要將該事件處理程序綁定到添加的新元素,或者您可以使用live()
而不是綁定來實現所需。
基本上,事件處理程序引用原始元素。當該元素被刪除時,即使新元素添加了相同的ID,它也是一個不同的元素。
+1,使其對所提到的現場活動 – 2009-08-08 20:10:10
第一人:您可以使用「活」的方法來添加將應用於符合此規則的事件規則,創建這些元素,即使創建規則後謝謝!我只是繼續學習。 :) – Abs 2009-08-12 09:43:24