现在知道 trigger 会触发浏览器默认行为,triggerHandler不会触发浏览器默认行为.但是对着两个方法的理解还不是很清楚
请各位同仁指导下.(本人分数不多,简单20分)谢谢!

解决方案 »

  1.   

    http://hi.baidu.com/21tian/blog/item/0273e8c4957872a28226acd7.html
    你看看这个对你有帮助没有。
      

  2.   

    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>
        <style type="text/css">
            *
            {
                font-size: 12px;
            }
        </style>
        <title>Triggle与TriggleHandler</title>    <script src="jquery-1.4.2.min.js" type="text/javascript"></script>    <script type="text/javascript">
            $(function() {
                $("#txtContent").focus(function() {
                    $("#dv").html($("#dv").html() + "focus被触发。");
                });            $("#btnTrigger").click(function() {
                    $("#txtContent").trigger('focus');
                    return false;
                });            $("#btnTriggerHandler").click(function() {
                    $("#txtContent").triggerHandler('focus');
                });
            });
        </script></head>
    <body>
        <form id="myForm" action="">
        <input type="text" id="txtContent" name="txtContent" size="20" />
        <input type="button" id="btnTriggerHandler" name="btnTriggerHandler" value="TriggerHandler" />
        <input type="button" id="btnTrigger" name="btnTrigger" value="Trigger" />
        <div id="dv">
        </div>
        <p>
            ①使用Trigger 时会先触发我们绑定的focus 事件,然后文本框会获得焦点,之后触发了浏览器默认的        focus事件,所以trigger 会有两次输出。<br />
                   ②TriggerHandler 相对于 Trigger 只会触发我们绑定的focus,而不会触发浏览器的默认事件.所以        只会有一次输出
        </p>
        </form>
    </body>
    </html>