我有幾個動態生成的HTML元素,每個元素都使用自己的動態ID作爲類名。我有連接到這些元素像這樣的事件監聽器:在HTML元素上使用動態類名更改事件處理程序?
$(document).on("click", ".id_" + dynamic_id , clickCallback);
的問題是動態ID可以通過Ajax成功調用而變化,以及相應的HTML元素被更新,像這樣:
$(".id_" + old_dynamic_id).attr("class", new_dynamic_id);
這更改將使先前附加的事件偵聽器丟失,因爲它不知道HTML元素現在具有已分配的新ID。
什麼將是一個乾淨的方式來處理呢?我可以將事件監聽器重新附加到ajax成功函數中,但這並不理想,因爲會有兩個地方存在相同的事件監聽器代碼:創建元素並在ajax成功函數中。
附加事件處理程序的元素本身。目前,您將處理程序附加到文檔,並使用事件委派。 – goat