为了账号安全,请及时绑定邮箱和手机立即绑定

为什么trigger没有触发input的foucus行为??

<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

        .left div,

        .right div {

            width: 500px;

            height: 50px;

            padding: 5px;

            margin: 5px;

            float: left;

            border: 1px solid #ccc;

        }


        .left div {

            background: #bbffaa;

        }


        .right div {

            background: yellow;

        }

    </style>

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>


<body>

<h2>自定义事件triggerHandler</h2>

<div class="left">

    <div id="accident">

        <a>triggerHandler事件</a>

        <input type="text">

    </div>

    <button>事件冒泡,触发浏览器默认聚焦行为</button><br><br>

    <button>不会冒泡,不触发浏览器默认聚焦行为</button>

</div>

<script type="text/javascript">


    //给input绑定一个聚焦事件

    $("input").on("focus",function(event,title) {

        $(this).val(title);

    });


    $("#accident").on("click",function() {

        alert("trigger触发的事件会在 DOM 树中向上冒泡");

    });

    

    //trigger触发focus

    $("button:first").click(function() {

        $("a").trigger("click");

        $("input").trigger("focus","触发默认聚焦事件");

    });


    //triggerHandler触发focus

    $("button:last").click(function() {

        $("a").triggerHandler("click");

        $("input").triggerHandler("focus","没有触发默认聚焦事件");

    });




</script>

</body>

为什么trigger没有触发input的foucus行为??


正在回答

2 回答

 $("input").trigger("focus","触发默认聚焦事件");

你这一句代码是有错误的,既要有聚焦行为,又要input显示value值是矛盾的,除非把上面的focus都改成focusout

1 回复 有任何疑惑可以回复我~

我运行后. trigger触发了input的foucus行为

但是 triggerHandler没有触发focus

根据老师课程中的描述: 

若要触发通过 jQuery 绑定的事件处理函数,而不触发原生的事件,使用.triggerHandler() 来代替

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么trigger没有触发input的foucus行为??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信