有关jquery中trigger与triggerHandler方法的区别,trigger方法在每一个匹配的元素上触发某类事件,triggerHandler方法会触发指定的事件类型上所有绑定的处理函数,但不会执行浏览器默认动作。
jquery中trigger何triggerHandler方法的区别:
1,先来看trigger( event, [data] )方法
在每一个匹配的元素上触发某类事件。
这个函数也会导致浏览器同名的默认行为的执行。
比如,如果用trigger()触发一个’submit’,则同样会导致浏览器提交表单。
如果要阻止这种默认行为,应返回false。
也可以触发由bind()注册的自定义事件
复制代码 代码示例:
$("p").click( function (event, a, b) {
// 一个普通的点击事件时,a和b是undefined类型
// 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);
2、triggerHandler( event, [data] )方法
会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作。
如果对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发绑定的动作:
例子,通过代码来理解trigger与triggerHandler方法的区别。
复制代码 代码示例:
<button id=old type=submit>.trigger("focus")</button>
<button id=new type=submit>.triggerhandler("focus")</button><br><br>
<input value="to be focu
sed" type=text>
<script>
$(function(){
$("#old").click(function(){
$("input").trigger("focus");
}); // www.jb200.com
$("#new").click(function(){
$("input").triggerhandler("focus");
});
$("input").focus(function(){
$("<span>focused!</span>").appendto("body").fadeout(1000);
});
});
</script>