今天偶尔使用到了trigger,当我在网上看他的说明的时候也挺明白,后来看了一片关于他的文章,说
虽然为元素绑定了某些事件, 比如click, 但是有时希望在程序中触发这些事件, 这两个函数 可以实现此功能.主要区别是trigger会出发浏览器默认的动作, 而triggerHandler不会出发. 当单击".trigger"按钮时, 会调用两次Focesed, 并且input元素获得了焦点: 单击".triggerHandler"按钮时, 只调用一次,并且input元素没有获得焦点:
经过,代码测试(jquery-1.7.1.min.js)发现,两个操作都是调用一次,区别是:trigger选中了一些input标中的value值,而triggerHandler没有选中input标签中的数据(不知道是不是jquery版本的问题)
测试的区别是:trigger会选中数据,triggerHandler不会选中数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery事件处理:trigger和triggerHandler示例</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function(){ $(‘#old‘).click(function(){ $("#divResult").html(‘‘); $("input").trigger(‘focus‘); }); $(‘#new‘).click(function(){ $("#divResult").html(‘‘); $(‘input‘).triggerHandler(‘focus‘); }); $("input").focus(function() { $("<span>Focused!</span>").appendTo("#divResult"); }); }); </script> </head> <body> <button id="old"> .trigger("focus")</button> <button id="new"> .triggerHandler("focus")</button><br /> <br /> <input type="text" value="To Be Focused" /> <div id="divResult"></div> </body> </html>
本文出自 “追梦” 博客,请务必保留此出处http://dreameng.blog.51cto.com/1187899/1364424
trigger & triggerHandler,布布扣,bubuko.com
原文:http://dreameng.blog.51cto.com/1187899/1364424