jQuery delegate()是一種事件委托方法,可以通過委托來動態綁定事件處理程序。
在日常開發中,我們有時需要綁定大量的事件處理程序,這可能會導致性能問題。使用delegate()方法,我們可以將事件處理程序綁定到父元素上,而不是直接綁定到子元素上。
下面是一個簡單的例子,當我們點擊一個列表項時,將彈出該項的文本內容:
$('ul').delegate('li','click',function(){
alert($(this).text());
});
上述代碼中,我們將事件綁定到列表項的父元素上(即ul元素),當我們點擊任何一個列表項時,都會彈出該項的文本內容。
delegate()方法的語法如下:
$(ancestor).delegate(selector,event,data,callback);
其中,ancestor表示要委托的祖先元素,selector表示要綁定事件的子元素選擇器,event表示要綁定的事件名稱,data表示要傳遞的數據對象,callback表示事件處理程序。
另外,從jQuery 1.7開始,delegate()方法已被on()方法取代,因此在新項目中建議使用on()方法來委托事件處理程序。
$('ul').on('click', 'li', function() {
alert($(this).text());
});
on()方法的語法與delegate()方法類似,只是參數較為簡潔。更多詳細用法請參考jQuery官方文檔。