jquery live,bind,delegate

事件的觸發原理:事件的觸發是經過Javascript的事件冒泡機制來監測 this

1.bind 綁定的DOM元素。(bind方法只能給當前存在的元素綁定事件,對於過後採用JS等方式新生成的元素無效).(緣由:後加的DOM元素尚未被DOM樹識別)。(能夠經過find方法再一次遍歷一遍DOM樹,可是太麻煩了)! spa

2.live  綁定的是DOM樹。(因此能對後生成的元素也綁定相應的事件的緣由歸結在「事件委託」上面,所謂「事件委託」就是指綁定在祖先元素上的事件能夠在其後代元素上進行使用。live方法的處理機制就是把事件綁定在DOM樹的根節點上,而不是直接綁定在某個元素上。prototype

3.delegate 綁定是的是DOM樹。(live與delegate  相比,後者的效率要高。事件


  Array.prototype.get = function(n) { 
                if (n<0) {
return; 
}
                return this.slice(0,n); 
            }
            Array.prototype.del = function(n) { 
                if (n<0) {
return; 
}
                return this.splice(0,n); 
            } ip

bind是綁定到DOM元素身上的。 內存

live、delegate、on之類的是經過冒泡filter判斷來源觸發的。 get

bind只能是DOM存在才能綁定,live等是觸發的時候判斷。
DOM層層嵌套的,子元素在父元素裏,子元素的事件理應父元素也能捕獲。 io

事件綁定優缺點: function

  1. 過多的事件綁定會損耗內存
  2. 後期生成HTML會沒有事件綁定,須要從新綁定
  3. 語法過於繁雜
相關文章
相關標籤/搜索