返回值:jQuery delegate(selector,[type],[data],fn)
概述
指定的元素(屬於被選元素的子元素)新增一個或多個事件處理程式,並規定當這些事件發生時執行的函式。
jQuery 3.0中已棄用此方法,請用 on() 代替。
使用 delegate() 方法的事件處理程式適用於目前或未來的元素(比如由指令碼建立的新元素)。
參數
selector,[type],fn String,String,Function V1.4.2
selector: 選擇器字串,用於過濾器觸發事件的元素。
type: 附加到元素的一個或多個事件。 由空格分隔多個事件值。必須是有效的事件。
fn: 當事件發生時執行的函式
selector,[type],[data],fn String,String,Object,Function V1.4.2
selector: 選擇器字串,用於過濾器觸發事件的元素。
type: 附加到元素的一個或多個事件。由空格分隔多個事件值。必須是有效的事件。
data: 傳遞到函式的額外資料
fn: 當事件發生時執行的函式
selector,events String,String V1.4.3
selector: 選擇器字串,用於過濾器觸發事件的元素。
events: 一個或多個事件型別的字串和函式的資料對映來執行他們。
示例
描述:
當點選滑鼠時,隱藏或顯示 p 元素:
HTML 程式碼:
<div style="background-color:red">
<p>這是一個段落。</p>
<button>請點選這裡</button>
</div>
jQuery 程式碼:
$("div").delegate("button","click",function(){
$("p").slideToggle();
});
描述:
delegate這個方法可作為live()方法的替代,使得每次事件繫結到特定的DOM元素。
以下兩段程式碼是等同的:
$("table").delegate("td", "hover", function(){
$(this).toggleClass("hover");
});
$("table").each(function(){
$("td", this).live("hover", function(){
$(this).toggleClass("hover");
});
});