jquery trigger与triggerHandler方法区别

发布时间:2019-07-17编辑:脚本学堂
有关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 focused" 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>