trigger(type,[data])
在每一个匹配的元素上触发某类事件。
这个函数也会导致浏览器同名的默认行为的执行。比如,如果用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)/buttonbr/br/
input type=text value=To Be Focused/
jQuery 代码:
$(#old).click(function(){
$(input).trigger(focus);
});
$(#new).click(function(){
$(input).triggerHandler(focus);
});
$(input).focus(function(){ $(spanFocused!/span).appendTo(body).fadeOut(1000); });
取消
评论