「JavaScript」 基礎(chǔ)知識(shí)要點(diǎn)及??济嬖囶}(四)--- [事件相關(guān)方面]

事件的委托

所謂的事件委托,通過監(jiān)聽一個(gè)父元素,來給不同的子元素綁定事件,減少監(jiān)聽次數(shù),從而提升速度。
eg:

<body>
    <ul id="isUl">
        <li id="li01">1</li>
        <li id="li02">2</li>
        <li id="li03">3</li>
    </ul>
    <script>
        function clickLi01() {
            alert('你點(diǎn)擊了第1個(gè)li');
        }
        function clickLi02() {
            alert('你點(diǎn)擊了第2個(gè)li');
        }
        function clickLi03() {
            alert('你點(diǎn)擊了第3個(gè)li');
        }
        document.getElementById('isUl').addEventListener('click', function(event) {
            var srcID = event.target.id;
            if(srcID == 'li01'){
                clickLi01();
            }else if(srcID == 'li02') {
                clickLi02();
            }else if(srcID == 'li03') {
                clickLi03();
            }
        });
    </script>
</body>

new 做了什么操作

  1. 創(chuàng)建一個(gè)新對(duì)象,同時(shí)繼承對(duì)象類的原型,即xxx.prototype
  2. 執(zhí)行類的構(gòu)造函數(shù),同時(shí)將改實(shí)例上的屬性和方法被this引用,即this指向新的構(gòu)造函數(shù)
  3. 如果構(gòu)造函數(shù)放回一個(gè)新對(duì)象,那么這個(gè)對(duì)象就會(huì)取代new出來的結(jié)果。如果構(gòu)造函數(shù)沒有return對(duì)象,即返回隱式的this

for of , for...in.. 的區(qū)別

http://www.itdecent.cn/p/c43f418d6bf0

事件冒泡和事件捕獲有什么區(qū)別

事件捕獲:當(dāng)觸發(fā)子元素身上的事件,會(huì)先觸發(fā)父元素,然后在傳遞給子元素
事件冒泡:當(dāng)給父子元素的同一事件綁定方法時(shí),觸發(fā)子元素身上的事件,執(zhí)行完畢之后,也會(huì)觸發(fā)父級(jí)元素相同的事件。

事件委托

通過父節(jié)點(diǎn)事件來傳播到子節(jié)點(diǎn)(事件捕獲)
問:怎么判斷你點(diǎn)了是第幾個(gè)子節(jié)點(diǎn)

<!DOCTYPE html>
<html>
  <body>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </body>

  <script>
    window.onload = function() {
      let $ul = document.getElementsByTagName('ul')[0];
      let $lis = document.getElementsByTagName('li')
      $ul.addEventListener('click', function(e) {
        let target = e.target
        for(let i = 0; i< $lis.length; i++) {
            if (target === $lis[i]) {
                console.log('你點(diǎn)擊了第', i + 1 , '個(gè)')
            }
        }
      });
    };
  </script>
</html>

移動(dòng)端 click和touch事件的區(qū)別

移動(dòng)端的touch click事件的理解

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,690評(píng)論 1 11
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,513評(píng)論 0 21
  • 1.幾種基本數(shù)據(jù)類型?復(fù)雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
    極樂君閱讀 5,878評(píng)論 0 106
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點(diǎn)的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點(diǎn)是DOM的常...
    凜0_0閱讀 1,511評(píng)論 0 8
  • JavaScript語言精粹 前言 約定:=> 表示參考相關(guān)文章或書籍; JS是JavaScript的縮寫。 本書...
    微笑的AK47閱讀 656評(píng)論 0 3

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