動態產生元素的事件處理
當使用jQuery 的load() 或click() 等方法動態產生元素時,擷取會觸發的事件這些因素可能具有挑戰性。附加到靜態元素的標準事件處理程序可能不適用於動態產生的元素。
解決方案:事件委託
事件委託是一種允許您處理事件的技術從動態創建的元素中冒出來。透過將事件委託給靜態祖先元素,可以確保在綁定事件處理程序時它存在。
使用jQuery 的.on() 方法
對於jQuery 版本1.7或以上,使用.on()方法來委託event:
$('#modal').on('keyup', 'input', function() { handler = $(this).val(); name = $(this).attr('name'); });
使用jQuery 的.delegate()方法(舊版)
對於舊的jQuery 版本(1.6 或更低版本),請使用.delegate()方法代替:
// Note the different order of selector and event $('#modal').delegate('input', 'keyup', function() { handler = $(this).val(); name = $(this).attr('name'); });
透過使用事件委託,可以有效處理事件由動態產生的元素觸發,無需擔心元素建立的順序和事件綁定。
以上是如何處理 jQuery 中動態產生元素的事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!