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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
JavaScript中的prototype和constructor简明总结
Apr 05 Javascript
45个JavaScript编程注意事项、技巧大全
Feb 11 Javascript
JavaScript学习小结(一)——JavaScript入门基础
Sep 02 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
layui表格内容溢出的解决方法
Sep 06 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
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
最短的IE判断代码
2011/03/13 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
js canvas实现五子棋小游戏
2021/01/22 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
python的Template使用指南
2014/09/11 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python中dict使用方法详解
2019/07/17 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
解决python 文本过滤和清理问题
2019/08/28 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
石油大学毕业生自荐信
2014/01/28 职场文书
教导处教学工作总结
2015/08/12 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang