首頁  >  事件  > delegate(s,[t],[d],fn)

返回值: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");
  });
});