trigger( event, [data] )
在每一个匹配的元素上触发某类事件。这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个’submit’,则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。
也可以触发由bind()注册的自定义事件
$("p").click( function (event, a, b) {
// 一个普通的点击事件时,a和b是undefined类型
// 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);triggerHandler( event, [data] )
这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作.
如果对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发绑定的动作:
.trigger("focus")
.triggerHandler("focus")
$(function(){
$("#old").click(function(){
$("input").trigger("focus");
});
$("#new").click(function(){
$("input").triggerHandler("focus");
});
$("input").focus(function(){
$("Focused!").appendTo("body").fadeOut(1000);
});
});
首先trigger 和triggerHandler都是模拟事件发生的。
trigger():触发被选元素上指定的事件以及事件的默认行为(比如表单提交)。
triggerHandler():只触发被选元素的指定事件,不触发默认事件。
两者区别:(1)triggerHandler不触发事件的默认事件
(2)triggerHandler只触发所有匹配元素中第一个元素的事件
(3)triggerHandler不支持事件冒泡
俩个事件的意思都是
在每一个匹配的元素上触发某类事件
区别是,triggerHandler 阻止了 绑定事件的元素的默认行为