首頁 > web前端 > js教程 > jQuery 遷移:為什麼 `on()` 不能與動態新增的下拉式選單一起使用?

jQuery 遷移:為什麼 `on()` 不能與動態新增的下拉式選單一起使用?

Barbara Streisand
發布: 2024-12-08 16:40:11
原創
825 人瀏覽過

jQuery Migration: Why Doesn't `on()` Work With Dynamically Added Dropdowns?

jQuery:動態新增下拉式選單從live() 升級到on()

jQuery 1.7 引入了on() 方法作為替代對於live()。雖然 on() 的語法和預期功能看起來很簡單,但使用者在嘗試從 live() 遷移到 on() 來動態新增元素時可能會遇到問題。

問題:

當使用on()監聽動態新增的下拉式選單上的change()事件時,事件處理程序無法

原因:

與live() 不同,live()將事件處理程序附加到文件中的所有符合元素,on() 只將處理程序綁定到現有元素。這是因為 on() 事件處理程序僅限於目前選定的元素,這意味著新新增的元素將無法觸發該事件,除非該處理程序綁定到更高層級的元素。

解決方案:

要複製 live() 的行為,請將事件處理程序綁定到封裝動態新增的下拉清單的更高層級元素。這確保了該範圍內所有新新增的元素都能夠觸發事件處理程序。

程式碼:

或者,最佳實踐是綁定事件處理程序盡可能靠近目標元素。然而,這可能並不總是在所有情況下都可行。

注意:

重要的是要注意on() 文件明確指出事件處理程序只是綁定到當前選定的元素,並且綁定時必須存在於頁面上。

以上是jQuery 遷移:為什麼 `on()` 不能與動態新增的下拉式選單一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板