在jQuery中,有四种绑定事件方法。分别是:on,live,bind,delegate
他们相对应的事件移出方法为:off,die,unbind,undelegate
1.bind
bind(type,[data],function(){});
type :事件类型
data:传入监听函数的参数
function:监听函数,可传event对象,但这里event不是原生js的,是jQuery封装过的
bind是在选择到的元素(目标元素)上绑定事件类型的监听函数,动态添加元素需再bind
源码:
bind:function(types,data,fn){
return this.on(types,null,data,fn);
}
2.live
live(type,[data],fn)
参数与bind一致
区别:Iive将事件绑定到this.context,而不是自己身上
源码:
live:function(types,data,fn){
jQuery(this.context).on(types,this.selector,data,fn)
return this;
}
context:元素限定范围(通常document)
主要是利用事件委托机制,把元素绑定到document上
3.由于live中时间委托机制范围太大为document,所以delegate为解决此问题产生
deletage相对于live多了个参数selector,用来指定触发事件的目标元素
监听器绑定事件到调用此方法的元素上
delegate:function(selector,types,data,fn){
return this.on(types,selector,data,fn)
}
4.on :根据前面几个例子你会发现,在每个方法中都有调用on
on(type,[selector],[data],fn);
于deletage 相似,但参数顺序不用,而且selector变为可选项,灵活性更强,也是jQuery推荐写法