在每壹個匹配的元素上觸發某類事件。
這個函數也會導致瀏覽器同名的默認行為的執行。比如,如果用trigger()觸發壹個'submit',則同樣會導致瀏覽器提交表單。如果要阻止這種默認行為,應返回false。
妳也可以觸發由bind()註冊的自定義事件
返回值 jQuery
參數
type (String) : 要觸發的事件類型
data (Array) : (可選)傳遞給事件處理函數的附加參數
示例
提交第壹個表單,但不用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!"]);
=====================================================================
triggerHandler(type,[data])
這個特別的方法將會觸發指定的事件類型上所有綁定的處理函數。但不會執行瀏覽器默認動作.
返回值 jQuery
參數
type (String) : 要觸發的事件類型
data (Array) : (可選)傳遞給事件處理函數的附加參數
示例
如果妳對壹個focus事件執行了 .triggerHandler() ,瀏覽器默認動作將不會被觸發,只會觸發妳綁定的動作。
HTML 代碼:
<button id="old">.trigger("focus")</button>
<button id="new">.triggerHandler("focus")</button><br/><br/>
<input type="text" value="To Be Focused"/>
jQuery 代碼:
$("#old").click(function(){
$("input").trigger("focus");
});
$("#new").click(function(){
$("input").triggerHandler("focus");
});
$("input").focus(function(){ $("<span>Focused!</span>").appendTo("body").fadeOut(1000); });