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 相关文章推荐
8个超棒的学习 jQuery 的网站 推荐收藏
Apr 02 Javascript
Javascript代码在页面加载时的执行顺序介绍
May 03 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
详解node服务器中打开html文件的两种方法
Sep 18 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
解决vue移动端适配问题
Dec 12 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 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位运算的简单权限设计
2013/06/30 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
js判断样式className同时增加class或删除class
2013/01/30 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
python一些性能分析的技巧
2020/08/30 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
捐款倡议书范文
2014/02/02 职场文书
大学学风建设方案
2014/05/04 职场文书
品德评语大全
2014/05/05 职场文书
某某同志考察材料
2014/05/28 职场文书
通讯稿格式及范文
2015/07/22 职场文书
学习委员竞选稿
2015/11/20 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python