講解之前先來講講性能.
如果一個整體頁面裡有大量的按鈕.我們就要為每一個按鈕綁定事件處理程序.這樣就會影響性能了.
首先每個函數都是對象,物件就會佔用很多記憶體.記憶體中的物件越多,效能就越差.
其次,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 } })
好了.就講解到這裡.