jquery中的trigger和triggerHandler区别

trigger( event, [data] )
在每一个匹配的元素上触发某类事件。
这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个’submit’,则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。

你也可以触发由bind()注册的自定义事件


triggerHandler( event, [data] )
这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作.
如果你对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发你绑定的动作:


首先trigger 和triggerHandler都是模拟事件发生的。

下面用案例来描述一下区别 :
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>test</title> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 

</head> 
<body> 
<input type="checkbox" /> 
<input type="text" id="test"/> 
<input type="button" value="button" id="bnt" οnclick="bntClick()"/> 
</body> 

<script> 
$( document ).ready(function() { 
$("input[type='checkbox']").bind("click",function(){ 
$("#test").val("www.baidu.com"); 
}); 
}); 

function bntClick(){ 
$("input[type='checkbox']").trigger("click"); 
} 
</script> 
</html> 

当点击 checkbox的时候 checkbox勾上 并将input[type='text']赋值www.baidu.com 

当点击 input[type='button'] 的时候 就会发生跟点击checkbox同样的事情 

将trigger换成triggerHandler时候 当点击 input[type='button'] 的时候 就只会给input[type='text']赋值 而不会勾选checkbox 

triggerHandler 阻止了 绑定事件的元素的默认行为

转载来自:http://zhidao.baidu.com/link?url=_CQYl3erUaN9dFj4fkPt9NhJBm45M3jnwG0PuiUCcnnGvW1wjfJykRCDW2ZfsSLq33MrtfdURaQaz05nVyD0pyMFL5VQeRmGFQvHJGaAkuO


发布了25 篇原创文章 · 获赞 4 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章