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 相关文章推荐
超级简单的图片防盗(HTML),好用
Apr 08 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
浅谈Angular 中何时取消订阅
Nov 22 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
Apr 21 Javascript
ES6中异步对象Promise用法详解
Jul 31 Javascript
vue微信分享插件使用方法详解
Feb 18 Javascript
vue ant design 封装弹窗表单的使用
Jun 01 Vue.js
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中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
13个PHP函数超实用
2015/10/21 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
python实现弹跳小球
2019/05/13 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Python tcp传输代码实例解析
2020/03/18 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
公司介绍信范文
2015/01/31 职场文书
红旗渠导游词
2015/02/09 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL