直接事件和委托事件
2016-03-21 15:10
357 查看
有很多人问过我这个问题,如下:
这两段代码有何区别?
jquery的官网文档中有详细的解释:
第1段的意思是把事件直接绑定在li上面,如果有N个li,那么就相当于绑定了N次li。而且只能绑定到文档中已经存在的li上面,后续添加的li是绑定不上的,比如通过ajax添加进去的新的li。 这就是直接事件绑定。
第2段是委托事件,也叫代理事件,只绑定了一次事件到li上面,也可以监听到后续添加的li。
两者的使用场景是有细微区别的,如果你只需要对已有的dom节点绑定事件,可以用第一种写法,也可以用第二种,
而当你需要全量监听时,特别是针对ajax动态引入的dom节点进行事件绑定时,应该用第二种。
$('ul li').on('click', function () { //TODO }); $('ul').on('click', 'li', function () { //TODO });
这两段代码有何区别?
jquery的官网文档中有详细的解释:
第1段的意思是把事件直接绑定在li上面,如果有N个li,那么就相当于绑定了N次li。而且只能绑定到文档中已经存在的li上面,后续添加的li是绑定不上的,比如通过ajax添加进去的新的li。 这就是直接事件绑定。
第2段是委托事件,也叫代理事件,只绑定了一次事件到li上面,也可以监听到后续添加的li。
两者的使用场景是有细微区别的,如果你只需要对已有的dom节点绑定事件,可以用第一种写法,也可以用第二种,
而当你需要全量监听时,特别是针对ajax动态引入的dom节点进行事件绑定时,应该用第二种。
相关文章推荐
- C#中的delegate委托类型基本学习教程
- C#中的委托数据类型简介
- C#中委托的进一步理解
- 举例讲解C#编程中委托的实例化使用
- C#使用委托(delegate)实现在两个form之间传递数据的方法
- C#中常见的系统内置委托用法详解
- C#基础之委托用法实例教程
- C#中委托和事件的区别实例解析
- C#中的委托介绍
- .Net常见问题之C#中的委托
- C#中委托的基本概念介绍
- C#委托delegate实例解析
- C#基于委托实现多线程之间操作的方法
- C#委托现实示例分析
- ASP.NET中实现定制自己的委托和事件参数类
- C#委托与事件初探
- jQuery事件绑定和委托实例
- JavaScript的事件代理和委托实例分析
- C#用匿名方法定义委托的实现方法
- C#事件处理和委托event delegate实例简述