jQuery之delegate(jQuery1.7以后不推荐)

自从jQuery1.7以后,推荐用on()替代delegate。

1     定义

  • delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
  • 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

2     语法

$(selector).delegate(childSelector,event,data,function)

参数

描述

*event

必需。规定要从被选元素添加的一个或多个事件或命名空间。

由空格分隔多个事件值,也可以是数组。必须是有效的事件。

childSelector

可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。

data

可选。规定传递到函数的额外数据。

function

可选。规定当事件发生时运行的函数。

3     例子

点击按钮时,切换p的显示或隐藏。使用delegate代码如下:

$("div").delegate("button","click",function(){
  $("p").slideToggle();
});

使用on()代替delegate()的代码如下:

$("div").on("button","click",function(){
  $("p").slideToggle();
});

4     扩展

jQuery 之动态添加事件(on)

参考网址

jQuery 事件 - delegate():https://www.w3school.com.cn/jquery/event_delegate.asp

有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
原文地址:https://www.cnblogs.com/luyj00436/p/14881590.html