JS事件委托

作者: 饥人谷__陈俊豪 | 来源:发表于2017-04-24 16:18 被阅读0次

    一、事件委托有三种方法

    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展示

    相关文章

      网友评论

        本文标题:JS事件委托

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