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閱讀 288評論 1 3
  • 事件委托的使用地點 事件委托的原理 jQuery中封裝耳朵事件委托 問題 將ajax請求回來的數據動態的拼接到ht...
    我不叫奇奇閱讀 190評論 0 4
  • 本來打算介紹clipboard.js如何使用,卻發現在https://clipboardjs.com介紹中事件委托...
    最愛是荔枝閱讀 321評論 0 0
  • 定義:通俗的講,事件就是onclick,onmouseover,onmouseout等就是事件,委托呢,就是讓別人...
    JYOKETSU3閱讀 342評論 0 0