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 漂亮的删除确认和提交无刷新删除示例
Nov 13 Javascript
javascript面向对象之访问对象属性的两种方式分析
Jan 13 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
浅析JS获取url中的参数实例代码
Jun 14 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
浅谈Angular文字折叠展开组件的原理分析
Nov 24 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
Vue3配置axios跨域实现过程解析
Nov 25 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函数extension_loaded()用法实例
2015/01/19 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
jQuery 选择器详解
2015/01/19 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
Python实现二维有序数组查找的方法
2016/04/27 Python
详解Python中namedtuple的使用
2020/04/27 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
毕业生的自我评价分享
2013/12/18 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
工作分析计划书
2014/04/30 职场文书
中考标语大全
2014/06/05 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
自荐信格式范文
2015/03/04 职场文书
教育教学工作反思
2016/02/24 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python