中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript事件委托原理是什么

發布時間:2021-12-07 09:45:03 來源:億速云 閱讀:121 作者:柒染 欄目:開發技術

JavaScript事件委托原理是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、什么是事件委托

事件委托也稱為事件代理。就是利用事件冒泡,把子元素的事件都綁定到父元素上。如果子元素阻止了事件冒泡,那么委托就無法實現。

舉個簡單的例子:

例如快遞員有100個快遞要分別送給100個學生, 如果一個個的送花費時間較長。同時每個學生領取的時候,也需要排隊領取,也花費時間較長,應該怎樣操作呢?這時快遞員可以把100個快遞委托給班主任,班主任把這些快遞放到辦公室,同學們下課自行領取即可。這樣的話,快遞員省事,同學們領取也更方便。這個過程就是一個委托事件。

二、事件委托的原理

不是每個子節點單獨設置事件監聽器,而是事件監聽器設置在其父節點上,然后利用冒泡原理影響設置每個子節點。

我們再來看看在具體的程序中是如何實現的吧!
比如,我們現在有一個無序列表,在無序列表里面有五個li,我們想要給每個li添加一個點擊事件,這個時候,我們常規操作是通過循環給每個li添加點擊事件。

代碼如下所示:

<body>
    <ul>
        <li>111111</li>
        <li>222222</li>
        <li>333333</li>
        <li>444444</li>
        <li>555555</li>
    </ul>
    <script>
        var li = document.querySelectorAll('li');
        for(var i=0;i<li.length;i++){
            li[i].onclick = function(){
                this.style.color = 'green';
            }
        }
    </script>
</body>

運行結果為:

JavaScript事件委托原理是什么

這種方法的確可以實現我們的點擊操作,但是這個過程中,由于每次都要給li添加點擊事件,造成訪問DOM的次數過多,會延長整個頁面的交互就緒時間。

所以,這里,我們就可以用到事件委托,即給ul注冊點擊事件,然后利用事件對象的 target 來找到當前點擊的 li,因為點擊li,事件會冒泡到ul上,ul有注冊事件,就會觸發事件監聽器。

實現代碼為:

<script>
        var ul = document.querySelector('ul');
        ul.addEventListener('click',function(e){
            e.target.style.color = 'orange';
        })
    </script>

運行結果為:

JavaScript事件委托原理是什么

成功顯示。

三、事件委托的作用

通過上面的操作,我們可以得到:在事件委托中,我們只操作一次 DOM ,大大的提高了程序的性能。

關于JavaScript事件委托原理是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孝昌县| 盘锦市| 双峰县| 南汇区| 鸡西市| 木里| 东安县| 柳河县| 阿巴嘎旗| 镇坪县| 巴东县| 沾化县| 台北市| 浮梁县| 揭东县| 康保县| 凉城县| 阳新县| 蒙山县| 寻甸| 阿拉善右旗| 丰都县| 米易县| 西贡区| 高陵县| 基隆市| 区。| 昭觉县| 始兴县| 海丰县| 象山县| 乌苏市| 成都市| 山西省| 从江县| 南昌市| 仪陇县| 金湖县| 蕉岭县| 乌拉特前旗| 资源县|