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中监听IME键盘输入事件
May 29 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
微信小程序(应用号)简单实例应用及实例详解
Sep 26 Javascript
jQuery的ready方法实现原理分析
Oct 26 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
JS如何设置元素样式的方法示例
Aug 28 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
Jun 11 Javascript
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
Angular设置别名alias的方法
Nov 08 Javascript
vue+element实现表单校验功能
May 20 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 Javascript
javascript实现雪花飘落效果
Aug 19 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php调用shell的方法
2014/11/05 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python字符串详细介绍
2015/05/09 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
高中毕业生自我鉴定范文
2013/09/26 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL