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 相关文章推荐
Firefox div高度自适应
Apr 28 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
Mar 29 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
May 27 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
ReactJS实现表单的单选多选和反选的示例
Oct 13 Javascript
vue实现带复选框的树形菜单
May 27 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
Python time库基本使用方法分析
2019/12/13 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
矿泉水广告词
2014/03/20 职场文书
小学生环保倡议书
2014/05/15 职场文书
效能监察建议书
2014/05/19 职场文书
毕业生求职信
2014/06/10 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
防暑降温通知书
2015/04/27 职场文书
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS
Python创建SQL数据库流程逐步讲解
2022/09/23 Python