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()方法解除處理函數的綁定。