JavaScript事件委托原理与用法实例分析

 更新时间:2018年06月07日 10:49:26   作者:考拉的墨尔本  
这篇文章主要介绍了JavaScript事件委托原理与用法,结合实例形式较为详细的分析了JavaScript事件流以及事件委托相关原理、用法与操作注意事项,需要的朋友可以参考下

本文实例分析了JavaScript事件委托原理与用法。分享给大家供大家参考,具体如下:

在日常中,我们可能会听到事件委托这样的概念,有些同学可能对事件委托已经很了解了,也有些同学可能只是听过事件委托,只是会简单的使用,但是对于事件委托的原理不怎么知道。所以该博文会解释一下原生js的事件委托的原理,为什么会有事件委托,为什么可以这样用事件委托等等问题。

1. js中的事件流

在解析事件委托之前,我们先回顾一下js中的事件流,即冒泡和捕获。

① .冒泡:当下级节点触发某个事件的时候,该事件会逐级向上触发上级节点的同类事件。

② .捕获:和冒泡类似,只不过事件的顺序相反。即是从上级节点传递到下级节点

2. 事件委托原理

事件委托就是基于js的事件流产生的,事件委托是利用事件冒泡,将事件加在父元素或者祖先元素上,触发该事件。

<body>
  <div id="myDiv">
    <input type="button" value="按钮1" id="btn1">
    <input type="button" value="按钮2" id="btn2">
    <input type="button" value="按钮3" id="btn3">
  </div>
</body>
<script type="text/javascript">
  document.getElementById("myDiv").onclick=function(e){
    e=window.event||e;
    var btnId=e.target.id;
    switch(btnId){
      case "btn1":
        console.log("按钮1");
      break;
      case "btn2":
        console.log("按钮2");
      break;
      case "btn3":
        console.log("按钮3");
      break;
    }
  }
</script>

上面的代码就是一个典型的事件委托案例。利用的原理就是事件冒泡,将事件加载父元素上,通过event参数来区别按钮的不同

3. 总结

通过对上面事件委托代码的观察,我们可以很容易得出事件委托的好处:

① .减少页面绑定事件数量,由于页面事件绑定数量越多,页面执行性能越差,所以事件委托可以提高页面的性能

② .事件委托可以灵活的处理子节点动态变化的场景,无论子节点增加还是减少,事件都无需重新绑定

PS:关于javascript事件说明可参考本站javascript事件与功能说明大全http://tools.jb51.net/table/javascript_event

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript事件相关操作与技巧大全》、《JavaScript页面元素操作技巧总结》、《JavaScript操作DOM技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • JS获取浏览器语言动态加载JS文件示例代码

    JS获取浏览器语言动态加载JS文件示例代码

    通过获取浏览器语言版本,来相对的加载easyui语言包就是动态加载JS文件,下面有个不错的实例,大家可以看看
    2014-10-10
  • JS定义网页表单提交(submit)的方法

    JS定义网页表单提交(submit)的方法

    这篇文章主要介绍了JS定义网页表单提交(submit)的方法,实例分析了javascript实现表单提交执行自定义函数的方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 关于微信小程序登录的那些事

    关于微信小程序登录的那些事

    这篇文章主要给大家介绍了关于微信小程序登录的那些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 新发现原来documenet.URL也可以实现页面跳转

    新发现原来documenet.URL也可以实现页面跳转

    新发现原来documenet.URL也可以实现页面跳转...
    2007-08-08
  • 小程序列表懒加载的实现方式

    小程序列表懒加载的实现方式

    懒加载,前端人都知道的一种性能优化方式,简单的来说,只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来,这篇文章主要给大家介绍了关于小程序列表懒加载的实现方式,需要的朋友可以参考下
    2022-04-04
  • js实现日历的简单算法

    js实现日历的简单算法

    这篇文章主要为大家详细介绍了js实现日历的简单算法,用js写了一套日历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • js实现表单校验功能

    js实现表单校验功能

    这篇文章主要为大家详细介绍了js实现表单校验功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • JSONP原理及应用实例详解

    JSONP原理及应用实例详解

    这篇文章主要介绍了JSONP原理及应用实例详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • js 优化次数过多的循环 考虑到性能问题

    js 优化次数过多的循环 考虑到性能问题

    IE没有我们想象中笨,它知道总的循环次数还是一千万次。因此,得把这一百个十万次循环分开执行。虽然Javascript是单线程的,但也可以通过setTimeout或setInterval模拟多线程。
    2011-03-03
  • JavaScript实现动态时钟效果

    JavaScript实现动态时钟效果

    这篇文章主要介绍了JavaScript实现动态时钟效果,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-06-06

最新评论