JS事件委托

一、事件委托有三种方法

  1. <button onclock="alert("hello world")">点击</button>
  2. btn.onclick = function(){...}
  3. btn.addEventListener(click,function(){})

这里主要讲第3种,前两种会存在代码重复,当有多个以上就会无法同时展示出来

HTML

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <style>
    li{border:1px solid}
  </style>
</head>
<body>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
  <button class="btn1">添加</button>
  <button class="btn2">删除</button>
</body>
</html>
  var btn1 = document.querySelector('.btn1')
   var btn2 = document.querySelector('.btn2')
   var ul = document.querySelector('ul')
   var lis = document.querySelectorAll('li')
   var lisL = lis.length
   var liContent = ["11","22","33","44","55"]  
   var index = 0
   
   // 添加li
   btn1.addEventListener('click',function(){
     
      console.log(index)
     if(index<liContent.length){ 
       
       let li = document.createElement('li')
       li.textContent = liContent[index]
       ul.appendChild(li)
       index+=1
     }
     else if(index ==liContent.length){
       return index = 0
     }
     
   })
      
   
   // 删除最后li
   btn2.addEventListener('click',function(){     
     ul.removeChild(ul.lastChild)   
   })
   

   // 监听每一个li,当点击其中的li,打印出里面的Text
    ul.addEventListener('click',function(e){
      console.log(e.target.innerHTML)
    })
       

demo展示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jQuery事件委托没得说,直接用on的方式在事件类型参数的后边加一个真正触发事件的对象即可,同时jQuery提供...
    宁宁nn阅读 710评论 2 5
  • 一直以来,对js的一些概念还是不清晰的,很多都没有搞明白,今天无意间在群里见他们提起事件委托,所以查找了一些资料,...
    蝴蝶结199007阅读 290评论 1 3
  • 事件委托的使用地点 事件委托的原理 jQuery中封装耳朵事件委托 问题 将ajax请求回来的数据动态的拼接到ht...
    我不叫奇奇阅读 195评论 0 4
  • 本来打算介绍clipboard.js如何使用,却发现在https://clipboardjs.com介绍中事件委托...
    最爱是荔枝阅读 327评论 0 0
  • 定义:通俗的讲,事件就是onclick,onmouseover,onmouseout等就是事件,委托呢,就是让别人...
    JYOKETSU3阅读 346评论 0 0