trigger & triggerHandler

今天偶尔使用到了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>


你可能感兴趣的:(web开发,trigger,triggerhandler)