jQuery的delegate()方法可以为指定元素添加事件处理函数,并且可以在绑定时就指定事件处理函数的作用域。delegate()方法可以用来为动态生成的元素添加事件处理函数,而不用为每个元素都添加事件处理函数。
delegate()方法的语法
$(selector).delegate(childSelector, event, data, function)
- selector:要为其绑定事件的元素选择器
- childSelector:要被绑定的子元素选择器
- event:要绑定的事件,如click、mouseover等
- data:可选,要传递给事件处理函数的数据
- function:要绑定的事件处理函数
delegate()方法的使用示例:
$("ul").delegate("li", "click", function(){ $(this).css("background-color", "red"); });
上面的代码中,我们为ul元素绑定了一个click事件处理函数,当ul中的li子元素被点击时,就会触发事件处理函数,并且将被点击的li元素的背景设置为红色。
delegate()方法还可以指定事件处理函数的作用域,示例如下:
$("ul").delegate("li", "click", {name: "John"}, function(event){ alert(event.data.name); });
上面的代码中,我们指定了事件处理函数的作用域,当ul中的li子元素被点击时,就会触发事件处理函数,并且弹出一个alert框,显示John。
jQuery的delegate()方法可以用来为指定元素添加事件处理函数,并且可以在绑定时就指定事件处理函数的作用域,非常方便。