javascript事件委托的用法及其好处简析


Posted in Javascript onApril 04, 2016

本文为大家简单介绍了javascript事件委托的用法及其好处,供大家参考,具体内容如下

事件委托:利用冒泡的原理,把事件加到父级上,触发执行效果,
好处:提高性能,新添加的元素还会有之前的事件。
event对象:事件源,不管在哪个事件中,只要你操作的那个元素就是事件源

获取事件源:
IE:window.event.srcElement 

标准下:event.target  target.nodeName来判断是哪个标签

代码应用如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>

</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
window.onload=function ()
{
  var oUl=document.getElementById('ul1');
  var oBtn=document.getElementById('btn1');
  var iNow=5;
  //事件源的方法依然保留父级事件!
  oUl.onmouseover=function(ev)
  {
    var ev=ev||window.event;
    var target=ev.target||ev.srcElement;
    if(target.nodeName.toLowerCase()=='li')
    {
      target.style.background='red';
    }
  }
  oUl.onmouseout=function(ev)
  {
    var ev=ev||window.event;
    var target=ev.target||ev.srcElement;
    if(target.nodeName.toLowerCase()=='li')
    {
      target.style.background='';
    }
  }
  oBtn.onclick=function()
  {
    iNow++;
    var oLi=document.createElement('li');
    oLi.innerHTML=111*iNow;
    oUl.appendChild(oLi);
  }
}
</script>
</head>
<body >
<input type="button" value="添加" id='btn1'>
<ul id='ul1'>
  <li>11111</li>
  <li>22222</li>
  <li>3333333</li>
  <li>44444444</li>
  <li>66666666</li>
</ul>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
基于JQuery的日期联动实现代码
Feb 24 Javascript
node.js中的fs.fsync方法使用说明
Dec 15 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
浅谈Vue 初始化性能优化
Aug 31 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
vue项目打包上传github并制作预览链接(pages)
Apr 19 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
vue-cli 关闭热更新操作
Sep 18 Javascript
基于javascript制作微博发布栏效果
Apr 04 #Javascript
纯js实现手风琴效果
Apr 17 #Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 #Javascript
Angular 根据 service 的状态更新 directive
Apr 03 #Javascript
jQuery中的Deferred和promise 的区别
Apr 03 #Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 #Javascript
jQuery qrcode生成二维码的方法
Apr 03 #Javascript
You might like
PHP中关键字interface和implements详解
2017/06/14 PHP
动态样式类封装JS代码
2009/09/02 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
python list转矩阵的实例讲解
2018/08/04 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
简单了解python中对象的取反运算符
2019/07/01 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
解决Python使用列表副本的问题
2019/12/19 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
护士上岗前培训自我鉴定
2014/04/20 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
欢迎词怎么写
2015/01/23 职场文书
2015年国庆节寄语
2015/08/17 职场文书
小组口号霸气押韵
2015/12/24 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
Python基本数据类型之字符串str
2021/07/21 Python
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python