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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章