直接與委託:深入了解jQuery .on()
jQuery .on() 方法提供了兩種事件處理方法:直接和委託。主要差異在於事件傳播機制。
直接事件處理
使用直接事件處理時,事件處理程序直接指派給目標元素。這表示處理程序僅在該特定元素上發生事件時才會執行。例如:
$("div#target span.green").on("click", function() { // Event handler for span.green elements within div#target });
在此範例中,只有 div#target 中的 span.green 元素才會觸發點擊處理程序。
委託事件處理
相反,委託事件處理將事件處理程序附加到父元素。當父元素內發生事件時,jQuery 會將事件委託給與指定選擇器相符的子元素。這種方法可以對動態建立或刪除的元素進行高效率的事件處理。
$("div#target").on("click", "span.green", function() { // Event handler for span.green elements that are descendants of div#target });
在這種情況下,點擊 div#target 容器中的任何 span.green 元素都會呼叫事件處理程序,即使事件委託後新增元素。
Key差異
理解這些差異對於優化 jQuery 應用程式中的事件處理至關重要。選擇適當的方法取決於專案的特定要求以及動態元素創建是否是一個因素。
以上是jQuery .on():直接事件處理與委託事件處理 – 您應該選擇哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!