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 相关文章推荐
js导入导出excel(实例代码)
Nov 25 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
Node.js的特点详解
Feb 03 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
Node.js实现文件上传的示例
Jun 28 Javascript
vue2.0 循环遍历加载不同图片的方法
Mar 06 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
Django模板继承 extend标签实例代码详解
May 16 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 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实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
利用python画出折线图
2018/07/26 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
python Zmail模块简介与使用示例
2020/12/19 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
2014年最新学习全国两会精神心得
2014/03/17 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
技术入股合作协议书
2014/10/07 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python