首頁 >web前端 >js教程 >如何處理 jQuery 中動態新增元素的事件?

如何處理 jQuery 中動態新增元素的事件?

Patricia Arquette
Patricia Arquette原創
2024-12-11 19:50:19656瀏覽

How Can I Handle Events from Dynamically Added Elements in jQuery?

處理動態產生的元素觸發的事件

將元素動態新增至 DOM 時,使用標準事件處理程序擷取這些元素觸發的事件可能會出現問題。出現此問題的原因是在創建元素之前附加了事件處理程序,導致事件未被捕獲。

jQuery 透過使用 .on() 方法(或 .delegate)提供了解決此問題的方法() 在舊版本中)。此方法可讓您將事件處理委託給靜態祖先元素,該元素在綁定處理程序時已經存在。這確保事件冒泡並可以被處理程序捕獲。

在您的特定情況下,您可以修改程式碼以使用.on() 方法,如下所示:

// jQuery 1.7 or above
$('#modal').on('keyup', 'input', function() {
    handler = $(this).val();
    name = $(this).attr('name');
});

// jQuery 1.6 或更低版本

$('#modal').delegate('input', 'keyup', function()
{
    handler = $(this).val();
    name = $(this).attr('name');
});

透過將事件處理委託給#modal元素,該元素在事件處理程序運行時已經存在綁定,您可以捕獲由該元素內動態生成的輸入元素觸發的事件。

以上是如何處理 jQuery 中動態新增元素的事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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