国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

jquery .bind() vs .live() vs .delegate() vs .on()

baukh789 / 1574人閱讀

摘要:但是當(dāng)我們點(diǎn)擊新添加的元素也就是時(shí),卻沒(méi)有把這個(gè)加給它。它的原理是利用事件冒泡最終代理給最頂層的。對(duì)于動(dòng)態(tài)生成的元素也生效因?yàn)槠鋵?shí)是綁定在上的。

假設(shè)我們有這樣一段html:

  • book 1
  • book 2

1: .bind()
.bind方法的用法是這樣的:targetElment.bind("eventType", eventHandler)
所以假入我們要給

  • 元素綁定一個(gè)click事件,那就這樣寫:

    $(document).ready(function(){
        $(".bookList li").bind("click", function(event){
            $(this).addClass("red");
        })
        
        $("button").bind("click", function(event){
            $(".bookList").append("
  • book 3
  • "); }) })

    最開(kāi)始只有兩個(gè)

  • 元素,點(diǎn)擊
  • 的時(shí)候會(huì)往當(dāng)前被點(diǎn)擊的
  • 上面添加一個(gè)名為‘red’的class。通過(guò)點(diǎn)擊‘a(chǎn)dd a li’這個(gè)button, 添加一個(gè)新的
  • 元素。但是當(dāng)我們點(diǎn)擊新添加的
  • 元素(也就是"book 3")時(shí),卻沒(méi)有把"red"這個(gè)class加給它。所以可以看到bind()有的缺點(diǎn)是:

    1: 對(duì)于動(dòng)態(tài)添加的元素不會(huì)綁定事件
    2: 它會(huì)給每一個(gè)滿足條件的dom元素都綁定這個(gè)eventHandler
    3: 它會(huì)帶來(lái)性能問(wèn)題
    4: 對(duì)應(yīng)解綁方法為:.unbind()
    

    2: .live()
    .live方法的用法是這樣的:targetElment.live("eventType", eventHandler)
    live()的寫法和bind是一樣,但是它們的功能和實(shí)現(xiàn)原理卻不一樣,不同點(diǎn)有:

    1: live()把eventHandler綁定在document上,而不是某個(gè)特定的元素節(jié)點(diǎn)上。它的原理是利用事件冒泡最終代理給最頂層的document。
    2: 對(duì)于動(dòng)態(tài)生成的元素也生效(因?yàn)閑ventHandler其實(shí)是綁定在document上的)。
    3: jQuery 1.7之后live()就被廢棄了,用.on()替代
    4: 對(duì)應(yīng)的解綁方法為 .die()
    

    3: .delegate()
    .delegate方法的用法是這樣的:delegatedObject.delegate("targetElment","eventType", eventHandler)
    比方說(shuō)仍然針對(duì)我們開(kāi)頭的那段代碼,我們把對(duì)

  • 的點(diǎn)擊事件,委托給它的父節(jié)點(diǎn)
      :

      $(".bookList").delegate(".bookList li","click", function(event){
              $(this).addClass("red");
       })

      .delegate()和live()都用了事件的委托,不用之處在于:

      1: delegate()可以自己選擇委托給特定的元素,而不是只能是document
      2: jQuery 1.7之后.delegate()也被廢棄了,要用.on()替換
      3: 對(duì)應(yīng)的解綁方法為 .undelegate()
      

      4: .on()
      .on()的語(yǔ)法:delegateObject.on("eventType", "targetElement", eventHandler)
      jQuery 1.7之后,上面的三個(gè)方法都被on取而代之,而用on的不同寫法就可以達(dá)到跟它們相同的效果:

      // Bind
      $( ".bookList li" ).bind( "click", function( e ) {} ); 
      $( ".bookList li" ).on( "click", function( e ) {} ); 
      
      // Live
      $( ".bookList li" ).live( "click", function( e ) {} );
      $( document ).on( "click", ".bookList li", function( e ) {} ); 
      
      // Delegate
      $( "#bookList" ).delegate( "li", "click", function( e ) {} );
      $( ".bookList" ).on( "click", "li", function( e ) {} ); 
      
  • 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/83555.html

    相關(guān)文章

    • [譯] Jquery中 .bind() .live() .delegate() 和 .on() 之間

      摘要:方法將事件類型和一個(gè)事件處理函數(shù)直接注冊(cè)到了被選中的元素中。方法將與事件處理函數(shù)關(guān)聯(lián)的選擇器和事件信息一起附加到文檔的根級(jí)元素即。通過(guò)將事件信息注冊(cè)到上,這個(gè)事件處理函數(shù)將允許所有冒泡到的事件調(diào)用它例如委托型傳播型事件。 簡(jiǎn)介 我了解到很多網(wǎng)頁(yè)開(kāi)發(fā)者對(duì)jquery中的 .bind() .live() .delegate() 和 .on() 方法存在很多的疑惑。這些疑惑通常是關(guān)于它們之間...

      terasum 評(píng)論0 收藏0
    • jquery 給動(dòng)態(tài)添加元素 實(shí)現(xiàn)點(diǎn)擊事件

      摘要:方法用到了事件委托的概念來(lái)處理事件的綁定。可以用在動(dòng)態(tài)添加的元素上缺點(diǎn)需要查找那個(gè)那個(gè)元素上發(fā)生了那個(gè)事件了,盡管比少很多了,不過(guò),你還是得浪費(fèi)時(shí)間來(lái)查找。 當(dāng)我們?cè)噲D綁定一些事件到DOM元素上的時(shí)候,通常會(huì)使用以下的四個(gè)方法bind(),on(),live(),delegate()大家應(yīng)該用的較多的是前兩種方法。下面是我對(duì)四種方法的理解: Bind(): .bind()是最直接的綁定...

      DataPipeline 評(píng)論0 收藏0
    • 深入理解JQuery中的on方法(事件委派機(jī)制)

      摘要:它是一個(gè)過(guò)濾器的作用,只有被選中元素的后代元素才會(huì)觸發(fā)事件。替換是引入的,目的是通過(guò)祖先元素來(lái)代理委派后代元素的事件綁定問(wèn)題,某種程度上和優(yōu)點(diǎn)相似。相關(guān)資料深入理解新的綁定事件機(jī)制方法的使用新的事件綁定機(jī)制 前言 在開(kāi)發(fā)項(xiàng)目的時(shí)候,JQuery的使用極其廣泛,如果腦海中沒(méi)有一點(diǎn)JQuery的基礎(chǔ)知識(shí),隨性編寫,那么就有可能造成bug問(wèn)題。JQuery 1.4版本之后新增了on方法,這個(gè)...

      ckllj 評(píng)論0 收藏0
    • 深入理解JQuery中的on方法(事件委派機(jī)制)

      摘要:它是一個(gè)過(guò)濾器的作用,只有被選中元素的后代元素才會(huì)觸發(fā)事件。替換是引入的,目的是通過(guò)祖先元素來(lái)代理委派后代元素的事件綁定問(wèn)題,某種程度上和優(yōu)點(diǎn)相似。相關(guān)資料深入理解新的綁定事件機(jī)制方法的使用新的事件綁定機(jī)制 前言 在開(kāi)發(fā)項(xiàng)目的時(shí)候,JQuery的使用極其廣泛,如果腦海中沒(méi)有一點(diǎn)JQuery的基礎(chǔ)知識(shí),隨性編寫,那么就有可能造成bug問(wèn)題。JQuery 1.4版本之后新增了on方法,這個(gè)...

      jindong 評(píng)論0 收藏0
    • 深入理解JQuery中的on方法(事件委派機(jī)制)

      摘要:它是一個(gè)過(guò)濾器的作用,只有被選中元素的后代元素才會(huì)觸發(fā)事件。替換是引入的,目的是通過(guò)祖先元素來(lái)代理委派后代元素的事件綁定問(wèn)題,某種程度上和優(yōu)點(diǎn)相似。相關(guān)資料深入理解新的綁定事件機(jī)制方法的使用新的事件綁定機(jī)制 前言 在開(kāi)發(fā)項(xiàng)目的時(shí)候,JQuery的使用極其廣泛,如果腦海中沒(méi)有一點(diǎn)JQuery的基礎(chǔ)知識(shí),隨性編寫,那么就有可能造成bug問(wèn)題。JQuery 1.4版本之后新增了on方法,這個(gè)...

      ralap 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    baukh789

    |高級(jí)講師

    TA的文章

    閱讀更多
    最新活動(dòng)
    閱讀需要支付1元查看
    <