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常见注意事项
Jan 01 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 Javascript
jQuery实现拖拽效果插件的方法
Mar 23 Javascript
跟我学习javascript创建对象(类)的8种方法
Nov 20 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
Nov 25 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
Sep 07 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 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
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
sails框架的学习指南
2014/12/22 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
JavaScript生成图形验证码
2020/08/24 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
python生成式的send()方法(详解)
2017/05/08 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
django如何自己创建一个中间件
2019/07/24 Python
python中对_init_的理解及实例解析
2019/10/11 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
数控技术与应用毕业生自荐信
2013/09/24 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
园艺师求职信
2014/04/27 职场文书
党员公开承诺书内容
2014/05/20 职场文书
学校运动会广播稿
2014/10/11 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
企业催款函范本
2015/06/24 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
MYSQL常用函数介绍
2022/05/05 MySQL
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis