jquery中click() bind() live() 與 delegate() 作用及其區別


1、click()與bind()

  1).click()

    在jqeury事件處理API中,bind()是其API基礎。click(),mouseover(),mousermove等來處理事件,真正起作用的是bind()。而這些方法都只是輔助作用(別名函數),簡化使用。他們都只有一個參數(觸發事件時執行的回調函數).

  2).bind()

    bind()能更好的控制事件處理函數中的處理過程,且它可以一次綁定多個事件(事件名作為第一個參數,多個事件用空格分開,eg:bind('click contains',function(){})  鼠標左右點擊事件 )

 

所有實用bind()或者click(),mouserover()綁定的事件都可以使用unbind()方法解除綁定

 

2、live()

  與bind()作用基本一樣。

  最重要區別:live()可以將事件綁定到當前和將來的元素(eg:為id=zy元素綁定點擊事件,而當你用js動態生成一個節點並插入到dom文檔結構中時,如果你是用bind()綁定的,怎么新插入的節點將不會有該bind綁定事件。而live()則可以);

  缺點: 無法用於鏈式結構。

      eg:  $('.class').live('click',function(){  })     正確寫法

         $('.class').find('span').live('click',function(){  })   錯誤寫法  無效

  live()綁定的事件可用 die()方法解除綁定。

3、delegate()

  與live()作用基本一樣,但是解決live缺點。它通過將選擇器內的上下文作為第一個參數來解決live問題(也就是delegate得第一個參數你可以當作是一個選擇元素所用)。

  eg. $('.class').delegate('span','mouseover',fucntion(){  })    為class為class的元素下的所有span標簽綁定mouseover事件。

  通過delegate()綁定的事件可通過undelegate()方法解除處理函數的綁定。

 

  

  

  


免責聲明!

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



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