26-事件委托

事件的委托

事件的對(duì)象
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus?">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>事件的對(duì)象</title>
     <style>
         #box{
             width:900px;
             height:400px;
             background:silver;
         }
         ul{
             background:#999999;
             width:400px;
         }
         li{
             width:300px;
             height:30px;
             margin-bottom:10px;
             background:pink;
             line-height:30px;
             list-style:none;
         }
     </style>
 </head>
 <body>
    <div id ='box'>
    <button>點(diǎn)擊</button>
        <ul>
            <li>第一個(gè)</li>
            <li>第二個(gè)</li>
            <li>第三個(gè)</li>
            <li>第四個(gè)</li>
        </ul>
     </div>
     <script>
        /*
            事件有 :?jiǎn)螕羰录髽?biāo)事件,鍵盤事件等
                      click、 mousemove、keydown 等
            事件對(duì)象
         *  - 當(dāng)事件的響應(yīng)函數(shù)被觸發(fā)時(shí),瀏覽器每次都會(huì)將一個(gè)事件對(duì)象作為實(shí)參傳遞進(jìn)響應(yīng)函數(shù),
         *    在事件對(duì)象中封裝了當(dāng)前事件相關(guān)的一切信息,
              比如:鼠標(biāo)的坐標(biāo)  鍵盤哪個(gè)按鍵被按下  鼠標(biāo)滾輪滾動(dòng)的方向。。。     
        */
        //給按鈕綁定點(diǎn)擊事件
        var btn = document.querySelector('button');
        btn.onclick = function(event){
            // 參數(shù)event包括了這個(gè)事件相關(guān)的一切信息
            console.log(event); 
            //打印結(jié)果看   圖一
        }
         /*
        btn.addEventListener('click',function(event){       
            console.log(event)
        })
        */
     </script>
 </body>
</html>

事件委托1.jpg

事件的委托

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus?">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>事件委托</title>
     <style>
         #box{
             width:900px;
             height:400px;
             background:silver;
         }
         ul{
             background:#999999;
             width:400px;
         }
         li{
             width:300px;
             height:30px;
             margin-bottom:10px;
             background:pink;
             line-height:30px;
             list-style:none;
         }
     </style>
 </head>
 <body>
    <div id ='box'>
    <button>點(diǎn)擊</button>
        <ul>
            <li>第一個(gè)</li>
            <li>第二個(gè)</li>
            <li>第三個(gè)</li>
            <li>第四個(gè)</li>
        </ul>
     </div>
     <script>
        /*
            事件托管
            因?yàn)槭录芭莸拇嬖?,所以可以通過 給需要綁定事件的元素 的父元素綁定事件,這就是事件委托
            比喻 ul下有四個(gè)li,我需要給每個(gè)li綁定單擊事件,有兩個(gè)方法,
            方法一: 通過遍歷,給每個(gè)li綁定單擊事件。
            方法二: 通過事件委托 ,給li的父元素 ul 綁定單擊事件
        */
         //獲取ul
        var ul =  document.querySelector('ul');
        //給ul綁定單擊事件
        ul.onclick = function(event){
            /* event.target 
               指的是你點(diǎn)擊的元素 ,比如你點(diǎn)擊第一個(gè) li ,event.target 指的就是第一個(gè)li ,
               點(diǎn)擊第二個(gè)li ,event.target就是指第二個(gè)li
               
                event.target.localName
                指的是你點(diǎn)的元素的標(biāo)簽名,你點(diǎn)擊的是li,event.target.localName 就是li,
                你點(diǎn)擊的是ul,event.target.localName 就是ul
            */
            console.log(event.target)
             /* event.currentTarget 
               指的是你綁定事件的元素,這里綁定元素的事件ul,這個(gè)event.currentTarget 
               指的就是 ul
             */
            console.log(event.currentTarget)
            
        }
         /*
            自定義屬性
            自定義一個(gè)屬性來存儲(chǔ)數(shù)據(jù)
            <li data = 'xxx'></li>
         */
         var arr=[001,002,003,004,005,006]
         for(var i = 0 ; i<arr.length;i++){
             ul.innerHTML += `<li data=${arr[i]}>第${i+5}</li>`
  
         }
        
       
     </script>
 </body>
</html>
事件委托2.jpg
事件委托3.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容