问答详情
源自:7-2 jQuery自定义事件之triggerHandler事件

.trigger("focus")传入参数后,input标签并未显示文本

<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");

    });

trigger支持冒泡,为什么我给input传入一个title参数比如 $("input").trigger("focus",“触发聚焦事件”);点击第一个按钮触发不了聚焦事件呢

    //triggerHandler触发focus

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

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

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

    });

</script>


提问者:小虾学前端 2017-01-12 10:06

个回答

  • 小虾学前端
    2017-01-12 10:32:15

    通过查看其他同学答案,既要有聚焦行为,又要input显示value值是矛盾的;其实不传参数时已经触发了聚焦事件(点击按钮1后光标停留在了input文本框内),foucus是原生事件,trigger会触发原生事件,如把foucus随便改成一个名字,点击按钮一时该参数就显示在input文本框了