首頁  >  事件  > trigger(type,[data])

返回值:jQuerytrigger(type,[data])

jQuery trigger() 方法概述

在每一個匹配的元素上觸發(fā)某類事件。

這個函數也會導致瀏覽器同名的默認行為的執(zhí)行。比如,如果用trigger()觸發(fā)一個'submit',則同樣會導致瀏覽器提交表單。如果要阻止這種默認行為,應返回false。

你也可以觸發(fā)由bind()注冊的自定義事件而不限于瀏覽器默認事件。

事件處理函數會收到一個修復的(規(guī)范化的)事件對象,但這個對象沒有特定瀏覽器才有的屬性,比如keyCode。

jQuery也支持 <a >命名空間事件</a>。這允許你觸發(fā)或者解除綁定一組特定的事件處理函數,而無需一一個指定。你可以在事件類型后面加上感嘆號 ! 來只觸發(fā)那些沒有命名空間的事件處理函數。

jQuery 1.3中新增:

所有觸發(fā)的事件現在會冒泡到DOM樹上了。舉例來說,如果你在一個段落p上觸發(fā)一個事件,他首先會在這個元素上觸發(fā),其次到父元素,在到父元素的父元素,直到觸發(fā)到document對象。這個事件對象有一個 .target 屬性指向最開始觸發(fā)這個事件的元素。你可以用 stopPropagation() 來阻止事件冒泡,或者在事件處理函數中返回false即可。

事件對象構造器現在已經公開,并且你可以自行創(chuàng)建一個事件對象。這個事件對象可以直接傳遞給trigger所觸發(fā)的事件處理函數。事件對象的完整屬性列表可以在 <a >jQuery.Event</a> 的文檔里找到。

你可以有三種方式指定事件類型:

* 你可以傳遞字符串型的事件名稱(type參數)。

* 你可以使用jQuery.Event對象??梢詫祿胚M這個對象,并且這個對象可以被觸發(fā)的事件處理函數獲取到。

* 最后,你可以傳遞一個帶有數據的字面量對象。他將被復制到真正的jQuery.Event對象上去。 注意在這種情況下你'''必須'''指定一個 <em>type</em> 屬性。

參數

type,[data]String|Event,ArrayV1.0

type:一個事件對象或者要觸發(fā)的事件類型

data:傳遞給事件處理函數的附加參數

event ObjectV1.3

事件發(fā)生時運行的函數

示例

描述:

提交第一個表單,但不用submit()

jQuery 代碼:
$("form:first").trigger("submit")

描述:

給一個事件傳遞參數

jQuery 代碼:
$("p").click( function (event, a, b) {
  // 一個普通的點擊事件時,a和b是undefined類型
  // 如果用下面的語句觸發(fā),那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);

描述:

下面的代碼可以顯示一個"Hello World"

jQuery 代碼:
$("p").bind("myEvent", function (event, message1, message2) {
  alert(message1 + ' ' + message2);
});
$("p").trigger("myEvent", ["Hello","World!"]);