在 Web 應用程式中動態產生元素時,您可能會遇到捕捉由這些元素觸發的事件的挑戰。如果在將動態元素新增至 DOM 之前定義事件處理程序,這可能會特別棘手。
在jQuery 中,有專門的方法來處理這種情況:
在jQuery 1.7 及更高版本中,.on() 方法用於委託事件。對於舊版本,.delegate() 具有相同的目的。這些方法可讓您將事件處理程序綁定到靜態祖先元素,該元素將自動捕獲從動態後代傳播的事件。
例如,如果您有一個動態產生的模式對話框,您可以將 keyup事件委託給模態元素而不是單一輸入元素:
$('#modal').on('keyup', 'input', function() { // Event handler code });
$(selector).on(eventName, selector, handler);
$(selector).delegate(selector, eventName, handler);
透過使用事件委託,可以確保動態元素觸發的事件由適當的事件處理程序正確捕獲和處理。
以上是如何處理 jQuery 中動態產生元素的事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!