jQuery事件委托


一、事件委托簡介

1、什么是事件委托

 事件委托是利用事件冒泡,只指定一個事件處理程序來管理某一類型的所有事件。

通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是讓別人來做,這個事件本來是加在某些元素上的,然而你卻加到別人身上來做,完成這個事件。

2、為什么要用事件委托

 (1)考慮一個ul,在li的數量非常少的時候,為每一個li添加事件當然會使用for循環;但是數量多的時候這樣做太浪費內存,長到上百上千上萬的時候,為每個li添加事件就會對頁面性能產生很大的影響。

 (2)給一個ul里面的幾個li添加了事件但是如果動態又生成了li則剛生成的li不具備事件這時就需要用到委托。

3、作用:

1.性能要好
2.針對新創建的元素,直接可以擁有事件

4、事件委托原理

事件委托就是利用事件冒泡原理實現的!
事件冒泡:就是事件從最深節點開始,然后逐步向上傳播事件;
例:頁面上有一個節點樹,div > ul  > li  >  a
比如給最里面的a 加一個click 事件,那么事件就會一層一層的往外執行,執行順序 a > li > ul > div,  有這樣一個機制,當我們給最外層的div 添加點擊事件,那么里面的ul , li  , a  做點擊事件的時候,都會冒泡到最外層的div上,所以都會觸發,這就是事件委托,委托他們父集代為執行事件;

二、使用場景

  •為DOM中的很多元素綁定相同事件;
  •為DOM中尚不存在的元素綁定事件;

實例:

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
</body>
 $(function () {
        $("ul").on("click","li",function () {
            alert(1);
        })
    });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM