jquery 绑定事件方式(可能出错处)
2017-03-24 00:33
246 查看
jquery 绑定事件的方式?
- 其实大体可以分为能不能绑定动态加载出来的节点事件来分类
1.直接在标签上绑定
<button onclick='btn()'></button>
2. 事件名绑定
<button id='btn'></button> <script> $("#btn").click(function(){ console.log(); }) </script>
3. bind()绑定,与直接事件绑定类似(无法动态绑定,)
源码:bind: function( types, data, fn ) { return this.on( types, null, data, fn ); }
4. live,on动态绑定
jquery 1.7版本以前使用live 动态绑定jquery 1.7版本以后使用on 动态绑定
5.live,delegate,on动态绑定
先看这三者的源码:live:
live: function( types, data, fn ) { jQuery( this.context ).on( types, this.selector, data, fn ); return this; }
delegate:
delegate: function( selector, types, data, fn ) { return this.on( types, selector, data, fn ); }
on:
on(type,[selector],[data],fn)
首先是Live:
绑定的是this.context,
$('#myol li').context; //document $('#myol li','#myol').context; //document
大多数情况下this.context 绑定的document,
故可推断事件的委托交给了doucment。
然后就是delegate,
$("#btn").delegate('li','click',function(){})
相当于返回的时候调用了一次on
最后介绍on ,
on 经过测试,事件委托并不是交给document,而是绑定到父元素上,如果不绑定到父元素上的时候,事件绑定会失效。
$('#father').on('click','#son',function(){})
— 请大家谨慎使用,最好使用on绑定,而且把事件委托交给父元素.
相关文章推荐
- JQuery入门――用映射方式绑定不同事件应用示例
- jquery 事件委托三种事件绑定方式.bind(),.live(),.delegate()
- jquery中取消和绑定hover事件的正确方式
- JavaScript中利用jQuery绑定事件的几种方式小结
- jQuery事件绑定方式(转)
- jquery绑定事件的三种方式详解
- 【jquery】jquery绑定事件的方式 bind() delegate() live()以及on()
- jquery解除hover事件的绑定方式
- 简单介绍JS/JQuery绑定事件的几种方式
- JavaScript中利用jQuery绑定事件的几种方式小结
- jquery事件绑定方式.bind() .live() .delegate()用法介绍
- jQuery三种事件绑定方式:bind(),.live(),.delegate()
- jQuery三种事件绑定方式.bind(),.live(),.delegate()原理对比
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- Jquery中的bind(),live(),delegate(),on()绑定事件方式
- Jquery中的bind(),live(),delegate(),on()绑定事件方式
- jquery 绑定事件 获取方式 --------------data event 获取