Jquery delegate方法是一種事件綁定的方式,它可以將事件綁定到一個元素的子元素上,即將事件處理函數添加到一個父節點上。
delegate方法的源碼如下:
//elem指的是父元素,selector為字符串(子元素選擇器),types為字符串(事件類型),fn是事件處理函數
function delegate(elem, selector, types, fn) {
//調用on方法,傳入types、fn、data、傳入一個回調函數
elem.on(types, selector, null, fn)
return elem;
}
可以看到,delegate方法本質上就是調用了on方法,并傳入了selector參數,這樣可以把事件綁定到父元素上,對子元素產生作用,這種方式比較適合動態添加的元素。
delegate的應用示例:
//對于在ul元素中動態添加的li,監聽click事件
$('ul').delegate('li', 'click', function(){
console.log($(this).text());
});
在上面的例子中,當用戶點擊動態添加的li元素時,事件處理函數就會被執行,這里使用了delegate來監聽事件,它的selector參數是li,表示只有li才會觸發事件處理函數。
上一篇側邊菜單 css3
下一篇mysql8賬戶改密碼