四. delegate方法:向匹配元素添加一个或多个事件处理程序
在jquery1.4增加,适用所有版本,但官方推荐使用on方法代替delegate方法
使用方法:
$(selector).delegate(childSelector,event,data,function)
参数:
childSelector: 必需项;需要添加事件处理程序的元素,一般为selector的子元素;
event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;
data:可选;需要传递的参数;
function:必需;当绑定事件发生时,需要执行的函数;
对应解绑方法: undelegate()
<body>
<button class="btn1">事件绑定delegate()</button>
<div>div1</div>
</body>
事件绑定代码如下图:
5.事件绑定方法的区别
bind()只能针对已经存在的元素进行事件的设置
live() 、delegate()、on()支持未来新添加元素的事件设置
其他事件绑定方法都是内部调用on来完成的,直接使用on可以提高效率
<body>
<button class="btn2">添加段落</button>
<div>div1</div>
</body>
点击添加段落按钮创建一个新的段落
6.one方法:为所选元素绑定一个仅触发一次的处理函数
one(event,data,function)
event:必需。规定添加到元素的一个或多个事件。
data:可选。规定传递到函数的额外数据。
function:必需。规定当事件发生时运行的函数。
$(".btn2").one("click",function(){
$("div").append("<p>我是新的段落</p>");
})
这里没点击一次按钮只会添加一个p标签。