首頁 >web前端 >js教程 >為什麼我的 jQuery on() 事件處理程序不能處理動態新增的元素?

為什麼我的 jQuery on() 事件處理程序不能處理動態新增的元素?

DDD
DDD原創
2024-12-06 02:32:12212瀏覽

Why Doesn't My jQuery on() Event Handler Work on Dynamically Added Elements?

尋找jQuery 的on() 事件處理程序的修復

在jQuery 中,事件處理從live() 到on() 的轉換一直是人們討論的話題。使用者遇到了 on() 事件處理程序不觸發的問題。為了解決這個問題,讓我們深入研究問題並找出解決方案。

on() 的文檔明確指出,事件處理程序僅綁定到程式碼執行時頁面上存在的元素。這與 live() 的行為形成鮮明對比,live() 將事件處理程序附加到動態加入頁面的元素。

要實現與live() 類似的功能,需要使用以下模式:

$(document.body).on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});

這種方法不僅將事件處理程序綁定到現有元素,還綁定到將來新增的元素。為了獲得最佳效能,必須將事件處理程序盡可能靠近目標元素綁定。

總而言之,從 live() 轉換到 on() 時,綁定動態添加的元素的事件處理程序至關重要,例如就像下拉列表中的那些一樣。這可確保程式碼按預期工作並有效響應用戶互動。

以上是為什麼我的 jQuery on() 事件處理程序不能處理動態新增的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn