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

概述

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

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

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

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

jQuery也支持 <a href="http://docs.jquery.com/Namespaced_Events">命名空间事件</a>。这允许你触发或者解除绑定一组特定的事件处理函数,而无需一一个指定。你可以在事件类型后面加上感叹号 ! 来只触发那些没有命名空间的事件处理函数。

jQuery 1.3中新增:

所有触发的事件现在会冒泡到DOM树上了。举例来说,如果你在一个段落p上触发一个事件,他首先会在这个元素上触发,其次到父元素,在到父元素的父元素,直到触发到document对象。这个事件对象有一个 .target 属性指向最开始触发这个事件的元素。你可以用 stopPropagation() 来阻止事件冒泡,或者在事件处理函数中返回false即可。

事件对象构造器现在已经公开,并且你可以自行创建一个事件对象。这个事件对象可以直接传递给trigger所触发的事件处理函数。事件对象的完整属性列表可以在 <a href="http://docs.jquery.com/Events/jQuery.Event">jQuery.Event</a> 的文档里找到。

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

* 你可以传递字符串型的事件名称(type參數)。

* 你可以使用jQuery.Event对象。可以将数据放进这个对象,并且这个对象可以被触发的事件处理函数获取到。

* 最后,你可以传递一个带有数据的字面量对象。他将被复制到真正的jQuery.Event对象上去。 注意在这种情况下你'''必须'''指定一个 <em>type</em> 属性。

參數

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

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

data:传递给事件处理函数的附加參數

event ObjectV1.3

事件發生時運行的函數

示例

描述:

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

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

描述:

给一个事件传递參數

jQuery 代码:
$("p").click( function (event, a, b) {

  // 一个普通的点击事件时,a和b是undefined类型

  // 如果用下面的语句触发,那么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!"]);