jQuery:動態新增下拉式選單從live() 升級到on()
jQuery 1.7 引入了on() 方法作為替代對於live()。雖然 on() 的語法和預期功能看起來很簡單,但使用者在嘗試從 live() 遷移到 on() 來動態新增元素時可能會遇到問題。
問題:
當使用on()監聽動態新增的下拉式選單上的change()事件時,事件處理程序無法
原因:
與live() 不同,live()將事件處理程序附加到文件中的所有符合元素,on() 只將處理程序綁定到現有元素。這是因為 on() 事件處理程序僅限於目前選定的元素,這意味著新新增的元素將無法觸發該事件,除非該處理程序綁定到更高層級的元素。
解決方案:
要複製 live() 的行為,請將事件處理程序綁定到封裝動態新增的下拉清單的更高層級元素。這確保了該範圍內所有新新增的元素都能夠觸發事件處理程序。
程式碼:
或者,最佳實踐是綁定事件處理程序盡可能靠近目標元素。然而,這可能並不總是在所有情況下都可行。
注意:
重要的是要注意on() 文件明確指出事件處理程序只是綁定到當前選定的元素,並且綁定時必須存在於頁面上。
以上是jQuery 遷移:為什麼 `on()` 不能與動態新增的下拉式選單一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!