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 相关文章推荐
javascript 单例/单体模式(Singleton)
Apr 07 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
css样式标签和js语法属性区别
Nov 06 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
jQuery遍历json的方法(推荐)
Jun 12 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
在vue中多次调用同一个定义全局变量的实例
Sep 25 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
JS实现瀑布流效果
Mar 07 Javascript
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
基于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 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
Angular路由简单学习
2016/12/26 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
Django中几种重定向方法
2015/04/28 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
python打包成so文件过程解析
2019/09/28 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
公务员的自我鉴定
2013/10/26 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
教学质量评估实施方案
2014/03/17 职场文书
《将心比心》教学反思
2014/04/08 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
委托证明书
2014/09/17 职场文书
工作检讨书怎么写
2015/01/23 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书