trigger(event, [data]) 与 triggerHandler(event, [data]) 都是用于触发一个事件。
其两者的区别在于,如果触发的事件是有浏览器默认行为的,trigger会触发浏览器默认行为,而triggerHandler不会。
简单来说,如果你要触发一个Form表单的submit事件。那么使用trigger,表单也会提交。而使用triggerHandler表单是不会提交的。
当然,如果你触发的是自己的自定义事件,都是没有浏览器默认行为的事件,那么两者效果其实一样。
<html lang="en"> <head> <meta charset="utf-8"> <title>trigger与triggerHandler的区别</title> <script src="http://code.jquery.com/jquery-1.10.2.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $('#btnTrigger').click(function(){ $("#ck1").trigger('click'); //触发浏览器默认行为,会选中 }) $('#btnTriggerHandler').click(function(){ $("#ck1").triggerHandler('click'); //没有浏览器默认行为,不会选中 }) }) </script> </head> <body> <input type="checkbox" id="ck1" /> <input type="button" value="btnTrigger" id="btnTrigger" /> <input type="button" value="btnTriggerHandler" id="btnTriggerHandler" /> </body> </html>