jQuery的delegate()是一種事件綁定方法,可以用于處理動態添加的元素或者大量相似元素的事件。
$(selector).delegate(childSelector,event,data,handler)
參數解釋:
- selector: 父元素選擇器
- childSelector: 子元素選擇器,只有匹配此選擇器的元素才會觸發事件,可以是任何有效的jQuery選擇器
- event: 事件類型,比如click、mouseover、keydown等
- data: 傳遞給事件處理函數的額外數據,可以是任何JavaScript數據類型
- handler: 事件處理函數,通過點語法的方式傳入
相對于on()方法直接綁定元素,使用delegate()方法可以避免影響到其他元素,提高了程序的性能。
例子:
$('ul').delegate('li','click',function(){ $(this).toggleClass('active'); })
上述代碼會將點擊事件綁定到ul元素上,只有點擊它的子元素li時才會觸發。點擊li時,改變它的class屬性,同時修改它的樣式。