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总体架构的理解分析
Mar 07 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
原生Javascript和jQuery做轮播图简单例子
Oct 11 Javascript
H5上传本地图片并预览功能
May 08 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
Angular使用Md5加密的解决方法
Sep 16 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 Javascript
JS实现拖动模糊框特效
Aug 25 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
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
javascript一点特殊用法
2008/05/28 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
深入了解python中元类的相关知识
2019/08/29 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
如何基于python操作json文件获取内容
2019/12/24 Python
python re模块常见用法例举
2021/03/01 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
数据库笔试题
2013/05/09 面试题
横幅标语大全
2014/06/17 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
2014年学生工作总结
2014/11/20 职场文书