jQuery元素绑定方式

在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推荐写法

你可能感兴趣的:(jQuery元素绑定方式)