JavaScript事件委托技术实例分析


Posted in Javascript onFebruary 06, 2015

本文实例分析了JavaScript事件委托技术。分享给大家供大家参考。具体分析如下:

如果一个整体页面里有大量的按钮.我们就要为每一个按钮绑定事件处理程序.这样就会影响性能了.

首先每个函数都是对象,对象就会占用很多内存.内存中的对象越多,性能就越差.

其次,dom访问次数增多,就会导致延迟加载页面.事实上,从如何来利用好事件处理程序,还是有很好的解决方案的.

事件委托:

对事件处理程序过多的问题解决的方案就是事件委托技术.

事件委托技术利用了事件冒泡.只需指定一个事件处理程序.

我们可以为某个需要触发事件的父元素来绑定事件处理程序.

<ul id="mylist">    
  <li id="li_1">sdsdsd</li>    
  <li id="li_2">sdsdsd</li>    
  <li id="li_3">sdsdsd</li>
</ul>

现在我们要为这3个li绑定事件处理程序..

只需要在ul绑定事件处理程序.

obj.eventHandler($("mylist"),"click",function(e){
  e = e || window.event;
  switch(e.target.id){
//大家应该还记得target是事件目标,
//只要点击了事件的目标元素就会弹出相应的alert.
 case "li_1":
 alert("li_1");
 break;
 case "li_2":
 alert("li_2");
 break;
 case "li_3":
 alert("li_3");
 break
  }
})

如果在一个复杂的web应用程序中,.这种事件委托是非常实用的.

如果不采用这种方式的话,一个一个去绑定那就是数不清的事件处理程序.

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript 异常处理使用总结
Jun 21 Javascript
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
Aug 27 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
jQuery版AJAX简易封装代码
Sep 14 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 Javascript
jquery中关于bind()方法的使用技巧分享
Mar 30 jQuery
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
如何检测JavaScript中的死循环示例详解
Aug 30 Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 #Javascript
JavaScript 异常处理 详解
Feb 06 #Javascript
jquery中change()用法实例分析
Feb 06 #Javascript
javaScript的函数对象的声明详解
Feb 06 #Javascript
javascript实用方法总结
Feb 06 #Javascript
javascript实现限制上传文件大小
Feb 06 #Javascript
jquery实现鼠标滑过显示提示框的方法
Feb 05 #Javascript
You might like
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP导出Excel实例讲解
2016/01/24 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
原生js+css调节音量滑块
2020/01/15 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
CNC数控操作工岗位职责
2013/11/19 职场文书
师范大学应届生求职信
2013/11/21 职场文书
写自荐信要注意什么
2013/12/26 职场文书
师范生自荐信模板
2014/05/28 职场文书
公司授权委托书范文
2014/08/02 职场文书
监考失职检讨书
2015/01/26 职场文书
幼师求职自荐信
2015/03/26 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript