首頁  >  文章  >  web前端  >  講解JavaScript的事件委託技術

講解JavaScript的事件委託技術

高洛峰
高洛峰原創
2016-11-25 14:20:54899瀏覽

講解之前先來講講性能.

如果一個整體頁面裡有大量的按鈕.我們就要為每一個按鈕綁定事件處理程序.這樣就會影響性能了.

首先每個函數都是對象,物件就會佔用很多記憶體.記憶體中的物件越多,效能就越差.

其次,dom造訪次數增多,就會導致延遲載入頁.事實上,從如何來利用好事件處理程序,還是有很好的解決方案的.

一、事件委託

對事件處理程序過多的問題解決的方案就是事件委託技術.

事件委託技術利用了事件冒泡.只需指定一個事件處理程序.

我們可以為某個需要觸發事件的父元素來綁定事件處理程序.

HTML代碼:

<ul id="mylist">
        <li id="li_1">sdsdsd</li>
        <li id="li_2">sdsdsd</li>
        <li id="li_3">sdsdsd</li>
</ul>

 

現在我們要為這3個li綁定事件處理程序..

現在我們要為這3個li綁定事件處理程序..

只需要在ul綁定事件處理程序.

js代碼:

obj.eventHandler($("mylist"),"click",function(e){
                    e = e || window.event;
                    switch(e.target.id){    //大家应该还记得target是事件目标,只要点击了事件的目标元素就会弹出相应的alert.
                        case "li_1":
                        alert("li_1");
                        break;
                        case "li_2":
                        alert("li_2");
                        break;
                        case "li_3":
                        alert("li_3");
                        break
                    }
                })

 

如果在一個複雜的web應用程序中,.這種事件委託是非常實用的.

如果不採用這種方式的話,一個一個去綁定那就是數不清的事件處理程序.


好了.就講解到這裡.

🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn