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 相关文章推荐
ExtJs GridPanel简单的增删改实现代码
Aug 26 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
May 06 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
Ionic默认的Tabs模板使用实例
Aug 29 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 Javascript
利用vue.js把静态json绑定bootstrap的table方法
Aug 28 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
微信小程序带动画弹窗组件使用方法详解
Nov 27 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 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
php 小乘法表实现代码
2009/07/16 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
2018/05/24 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python和ruby,我选谁?
2017/09/13 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
python在每个字符后添加空格的实例
2018/05/07 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python 如何提高元组的可读性
2019/08/26 Python
python实现视频读取和转化图片
2019/12/10 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
公司庆典活动邀请函
2014/01/09 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
租房协议书
2014/04/10 职场文书
伊琍体标语
2014/06/25 职场文书
租车协议书范本2014
2014/11/17 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
武侯祠导游词
2015/02/04 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
运动会通讯稿100字
2015/07/20 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL