事件代理/事件委託(event delegation)瀏覽器
需求一:當一個div內部有多個事件發生,給每一個元素逐個添加事件十分麻煩...this
需求二:在項目中咱們經常須要動態的添加元素,不可避免的須要爲那些將來添加的元素增長事件...spa
咱們:怎麼辦呢?代理
事件委託:我能夠!使用我能讓你避免對特定的每一個節點添加事件監聽器。事件
咱們:你究竟是什麼鬼? get
事件委託:我又叫事件代理,說白了就是利用瀏覽器事件捕獲和冒泡的原理,將事件監聽器添加到特定節點的父元素上,我就會分析從子元素冒泡上來的事件,找到是哪一個子元素的事件。it
舉個栗子:io
$(parentsEle).click(function (e) {
var e = e || window.event,
targetEle = e.target || e.srcElement,
_this = this;
switch (targetEle.className) {
case "font_r":
$(targetEle).fadeOut();
_this.siblings(".header").fadeIn();
break;
}
})
明白了嗎?event