用法
.delegate( selector, eventType, handler ) => jQuery
.delegate( selector, eventType, handler ) => jQuery
不推薦使用的版本:3.0
說明:基於一組特定的根元素,為現在或將來匹配選擇器的所有元素附加一個處理程序到一個或多個事件。
-
添加的版本:1.4.2
.delegate( selector, eventType, handler )
-
添加的版本:1.4.2
.delegate( selector, eventType, eventData, handler )
-
添加的版本:1.4.3
.delegate( selector, events )
-
selector類型:String用於過濾觸發事件的元素的選擇器。
-
events類型:PlainObject一個或多個事件類型的普通對象和為它們執行的函數。
-
從 jQuery 3.0 開始,.delegate()
已被棄用。自 jQuery 1.7 起,它被
方法取代,因此不鼓勵使用它。然而,對於早期版本,它仍然是使用事件委托的最有效方法。 .on()
方法中提供了有關事件綁定和委托的更多信息。通常,這些是兩種方法的等效模板:.on()
|
例如,以下 .delegate()
代碼:
|
等效於使用 .on()
編寫的以下代碼:
|
要刪除使用 delegate()
附加的事件,請參閱 .undelegate() 方法。
傳遞和處理事件數據的方式與 .on()
相同。
其他注意事項:
- 由於
.live()
.delegate()
處理的事件將傳播到它們被委托的元素;在調用委托的事件處理程序時,綁定在 DOM 樹中它下麵的任何元素上的事件處理程序將已經被執行。因此,這些處理程序可能會阻止委托處理程序通過調用event.stopPropagation()
或返回false
來觸發。
例子:
單擊一個段落以添加另一個段落。請注意, .delegate() 將單擊事件處理程序附加到所有段落 - 甚至是新段落。
|
演示:
要在每次單擊時在警報框中顯示每個段落的文本:
|
要取消默認操作並防止其冒泡,請返回 false:
|
使用 preventDefault 方法僅取消默認操作。
|
也可以綁定自定義事件。
|
演示:
相關用法
- JQuery .delay()用法及代碼示例
- JQuery .detach()用法及代碼示例
- JQuery .dequeue()用法及代碼示例
- JQuery .dblclick()用法及代碼示例
- JQuery .die()用法及代碼示例
- JQuery .data()用法及代碼示例
- JQuery .jquery用法及代碼示例
- JQuery .scroll()用法及代碼示例
- JQuery .add()用法及代碼示例
- JQuery .contextmenu()用法及代碼示例
- JQuery .undelegate()用法及代碼示例
- JQuery .load()用法及代碼示例
- JQuery .contents()用法及代碼示例
- JQuery .empty()用法及代碼示例
- JQuery UI .labels()用法及代碼示例
- JQuery UI .addClass()用法及代碼示例
- JQuery .click()用法及代碼示例
- JQuery UI .toggleClass()用法及代碼示例
- JQuery .removeAttr()用法及代碼示例
- JQuery .addClass()用法及代碼示例
- JQuery UI .cssClip()用法及代碼示例
- JQuery .next()用法及代碼示例
- JQuery UI .hide()用法及代碼示例
- JQuery .promise()用法及代碼示例
- JQuery .trigger()用法及代碼示例
注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .delegate()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。