美文网首页
初识js事件委托(1)

初识js事件委托(1)

作者: 最爱是荔枝 | 来源:发表于2017-03-28 22:21 被阅读52次

本来打算介绍clipboard.js如何使用,却发现在https://clipboardjs.com介绍中事件委托竟然不知道,于是就有了这篇介绍。

1 事件委托的原理

事件委托是是利用事件的冒泡原理来实现的,从内层元素一层一层往外找,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。

2针对dom中已经有的元素举例

1未使用事件委托

实现功能是点击li,打印11111:

<body>
  <ul id="uli">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
  </ul>
</body>

在我认识事件委托之前,代码都是这样写的,首先要找到ul,然后遍历li,然后点击li的时候,又要找一次目标的li的位置,才能执行最后的操作,每次点击都要找一次li;
<pre>
<script>
window.onload = function () {
var oUl = document.getElementById('uli');
var aLi = oUl.getElementsByTagName('li')
for(i=0;i<aLi.length;i++){
aLi[i].onclick = function () {
console.log('11111');
}
}
}
</script>
</pre>

2使用事件委托

这里用父级ul做事件处理,当li被点击时,由于冒泡原理,事件就会冒泡到ul上,因为ul上有点击事件,所以事件就会触发。大大减少了dom的操作
<pre>
<script>
window.onload = function () {
var oUl = document.getElementById('uli');
oUl.onclick = function () {
console.log('11111');
}
}
</script>
</pre>
参考http://www.cnblogs.com/liugang-vip/p/5616484.html

相关文章

  • 初识js事件委托(1)

    本来打算介绍clipboard.js如何使用,却发现在https://clipboardjs.com介绍中事件委托...

  • web前端面试题@六(事件委托)

    *说到事件委托,我们首先先要知道什么是事件委托—— · 那么什么是事件委托呢??? JS里的事件委托就是当事件...

  • JS写事件代理

    js中的事件委托或是事件代理详解

  • 事件委托

    还有很多要学,要加油哇。回正题。参考: js中的事件委托或是事件代理详解 1、基本概念事件委托就是利用事件冒泡,只...

  • 2021-03-01

    js 1. 事件委托事件委托指的是,不在事件的发生地(直接 dom)上设置监听函数,而是 在其父元素上设置监听函数...

  • 事件委托

    事件委托 事件委托其实就是利用JS事件冒泡机制把原本需要绑定在子元素的响应事件(click、keydown……)委...

  • js事件委托

    通过构建父元素和子元素,来控制事件。 先通过html构建父元素div,并嵌套一个子元素div,写入不同的方法,设置...

  • js事件委托

    事件委托:1、缘由在做一个项目,点击按钮出现蒙版,但是触发蒙版关闭蒙版,但是给蒙版添加点击事件的话,蒙版上的按钮也...

  • js事件委托

    我们收取快递有两种方法:一是在特定的地点等快递的到来,二是委托人代收。现实当中,我们大都采用委托的方案。而委托人接...

  • JS事件委托

    一、事件委托有三种方法 点击 btn.onclick = function(){...} btn.addEvent...

网友评论

      本文标题:初识js事件委托(1)

      本文链接:https://www.haomeiwen.com/subject/qwssottx.html