美文网首页
JS基础之事件委托

JS基础之事件委托

作者: IM唐钰小宝 | 来源:发表于2018-03-23 20:27 被阅读0次

什么是事件委托?

MDN上这么说
事件委托:这个概念依赖于这样一个事实,如果你想要在大量子元素中单击任何一个都可以运行一段代码,您可以将事件监听器设置在其父节点上,并将事件监听器气泡的影响设置为每个子节点,而不是每个子节点单独设置事件监听器。

题目:

<ul id="ul">
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>

问题:

1.如何为ul中的li添加点击事件?

const elLis = Array.from(document.getElementsByTagName('li'))
// 使用Array的from方法可以使dom的伪数组对象转为数组,这样就可以愉快的使用forEach了 顺便也能在面试官面前装个*
elLis.forEach(elLi => {
  elLi.addEventListener('click', (event) => {
    console.log(event.target.innerHTML)
  })
})

2.如果使用appendChild动态添加一个li,上述方法添加的点击事件是否对新增li生效?如何让新增的li也能拥有点击事件?(如果你在问题一中回答使用for循环为所有的li添加监听事件,可爱的面试官就会拿出来这个可爱的问题)

const elUl = document.getElementById('ul')
elUl.addEventListener('click', (event) => {
  if(event.target.nodeName.toLowerCase() === 'li') {
   console.log(event.target.innerHTML)
  }
})

相关文章

  • JS基础之事件委托

    什么是事件委托? MDN上这么说事件委托:这个概念依赖于这样一个事实,如果你想要在大量子元素中单击任何一个都可以运...

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

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

  • JS写事件代理

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

  • 事件委托

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

  • js事件委托

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

  • js事件委托

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

  • js事件委托

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

  • JS事件委托

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

  • js事件委托

    前言 事件委托,也叫事件代理,是js事件中的一种常用技巧。事件委托的原理就是利用冒泡事件的机制,为一些节点的祖先节...

  • js事件委托

    定义:通俗的讲,事件就是onclick,onmouseover,onmouseout等就是事件,委托呢,就是让别人...

网友评论

      本文标题:JS基础之事件委托

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