自从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 事件 - delegate():https://www.w3school.com.cn/jquery/event_delegate.asp