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 相关文章推荐
模拟select的代码
Oct 19 Javascript
jquery 实现表单验证功能代码(简洁)
Jul 03 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
Mar 04 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
javascript断点调试心得分享
Apr 23 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
当json键为数字时的取值方法解析
2013/11/15 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
json的使用小结
2016/06/08 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
Python 多线程的实例详解
2017/09/07 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
python3正则模块re的使用方法详解
2020/02/11 Python
python 弧度与角度互转实例
2020/04/15 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
工地门卫岗位职责
2013/12/30 职场文书
篝火晚会主持词
2014/03/25 职场文书
保护环境倡议书500字
2014/05/19 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
入党积极分子群众意见
2015/06/01 职场文书
无保留意见审计报告
2015/06/05 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL