在 jQuery 中,將事件處理程序附加到動態建立的 HTML 元素需要與靜態元素不同的方法。透過 AJAX 或 DHTML 等技術新增至頁面的動態 HTML 元素缺乏事件綁定,除非明確處理。
假設您有一個 jQuery 程式碼,它將事件處理程序附加到類別為「.myclass」的所有元素。這對於頁面載入時出現的元素無縫地工作,但是將事件處理程序附加到動態建立的「.myclass」元素提出了挑戰。
為了解決這個問題,可以採用兩種技術:
在jQuery 1.7 及更高版本中,.live() 方法已棄用。相反,.on() 應該用於附加事件處理程序。此方法可讓您指定一個選擇器來選擇父元素,並將其與要處理事件的動態元素的選擇器組合。
例如:
$('body').on('click', 'a.myclass', function() { // Do something });
在此例如,事件處理程序將附加到body 標籤內具有myclass 類別的所有a 標籤,無論它們是在頁面加載時出現還是稍後動態添加。
對於 1.7 之前的 jQuery 版本,可以使用 .delegate() 方法來取代 .on()。語法類似,允許您指定父選擇器和動態元素的選擇器:
$('body').delegate('a.myclass', 'click', function() { // Do something });
使用這些技術中的任何一種都可以確保事件處理程序附加到靜態和動態創建的HTML 元素,從而使它可以方便地處理動態內容上的事件。
以上是如何使用 jQuery 將事件處理程序附加到動態建立的 HTML 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!