jquery中的trigger和triggerHandler区别
trigger( event, [data] )
在每一个匹配的元素上触发某类事件。
这个函数也会导致浏览器同名的默认行为的执行。
例如:
$("p").click( function (event, a, b) { | |||
// 一个普通的点击事件时,a和b是undefined类型 |
// 如果用下面的语句触发,那么a指向"foo",而b指向"bar" | ||
} ).trigger("click", ["foo", "bar"]); |
triggerHandler( event, [data] )
这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作.
如果你对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发你绑定的动作:
<form action="tj.html" method="post">
<button id="old" type=submit>.trigger("focus")</button>
<button id="new" type=submit>.triggerHandler("focus")</button><br />
<input type="submit" value="提交" id="sub" />
</form>
<script>
$(function(){
$("#old").click(function(){
$("#sub").trigger("click");
});
$("#new").click(function(){
$("#sub").triggerHandler("click");
});
$("#sub").click(function(){
alert("点击成功")
});
});
</script>