📅  最后修改于: 2023-12-03 15:16:47.820000             🧑  作者: Mango
jQuery 的委托方法(delegate)是一种事件委托技术,能够为多个后代元素绑定同一个事件处理程序。委托方法的优势在于:对动态创建的元素同样有效,而且可以减少绑定的事件处理程序数量,提高效率。
$(selector).delegate(childSelector, event, handler)
或者
$(selector).on(event, childSelector, handler)
注:委托方法有一个废弃的版本,即 $(selector).delegate(childSelector, eventType, handler)
,在 jQuery 3.0 及以上版本被废弃。
例如,在一个 ul 列表中需要为所有 li 元素绑定事件处理程序:
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<script>
$(document).ready(function(){
$("#list").delegate("li", "click", function(){
$(this).toggleClass("selected");
});
});
</script>
上面的代码将为 ul#list 元素绑定事件,当一个 li 子元素被点击时,事件将从该元素向上冒泡,由 ul#list 处理。这样可以避免为每个 li 元素单独绑定事件处理程序,提高效率。
on()
方法代替 delegate()
方法,其语法基本相同,并且支持连缀操作。以上就是 jQuery 委托方法的相关介绍,希望对大家有所帮助。