jQuery的事件委托实例分析


Posted in Javascript onJuly 15, 2015

事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率。先看一段代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>三水点靠木</title>
<style type="text/css">
table{
 width:300px;
 height:60px;
 background-color:green;
} 
table td{
 background-color:white;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("td").bind("click",function(){
  $(this).text("哈哈");
 })
})
</script>
</head>
<body>
<table cellspacing="1">
 <tr>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
 </tr>
 <tr>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
 </tr>
</table>
</body>
</html>

在以上代码中,使用bind()方法为每一个td绑定了一个click事件处理函数,这样当点击单元格的时候,就会重新设置单元格中的文本。虽然此中方式实现了需要的效果,看起来非常的完美,其实并非这样,如果当单元格非常多时候,遍历单元格和为每一个单元格绑定事件处理函数将会大大降低代码的性能,如果让单元格的父元素监听事件,只要判断最初触发事件的DOM元素是否是td即可。

代码修改如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>三水点靠木</title>
<style type="text/css">
table{
 width:300px;
 height:60px;
 background-color:green;
} 
table td{
 background-color:white;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("table").bind("click",function(e){
  var target = e.target;
  $target=$(target);
  if ($target.is("td")){
   $target.text('哈哈');
  }
 })
})
</script>
</head>
<body>
<table cellspacing="1">
 <tr>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
 </tr>
 <tr>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
  <td>单元格</td>
 </tr>
</table>
</body>
</html>

以上代码实现了相同的功能,但是效率却大大提高了。

总结:所谓的事件委托,就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JQuery在页面中添加和除移DOM示例代码
Jun 24 Javascript
javascript禁制后退键(Backspace)实例代码
Nov 15 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 Javascript
js模拟百度模糊搜索的实例
Aug 04 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
js实现蒙版效果
Jan 11 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 Javascript
jQuery的end()方法使用详解
Jul 15 #Javascript
浅谈$(document)和$(window)的区别
Jul 15 #Javascript
浅谈window对象的scrollBy()方法
Jul 15 #Javascript
jQuery的bind()方法使用详解
Jul 15 #Javascript
纯JavaScript实现的分页插件实例
Jul 14 #Javascript
javascript实现网页字符定位的方法
Jul 14 #Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 #Javascript
You might like
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
jQuery 使用个人心得
2009/02/26 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
urllib2自定义opener详解
2014/02/07 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
pytorch实现线性拟合方式
2020/01/15 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
节约用电标语
2014/06/17 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
开学随笔
2015/08/15 职场文书