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中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
解决Jquery鼠标经过不停滑动的问题
Mar 03 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
AngularJS 使用 UI Router 实现表单向导
Jan 29 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
Aug 29 Javascript
JS跳转手机站url的若干注意事项
Oct 18 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
Vue中inheritAttrs的使用实例详解
Dec 31 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 gzip压缩输出的实现方法
2013/04/27 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
js日历功能对象
2012/01/12 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Python的词法分析与语法分析
2013/05/18 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
python 美化输出信息的实例
2018/10/15 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
书法大赛策划方案
2014/06/04 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2015年林业工作总结
2015/05/14 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
旅游安全责任协议书
2016/03/22 职场文书