事件的觸發原理:事件的觸發是經過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