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

来源:7-2 jQuery自定义事件之triggerHandler事件

小虾学前端

2017-01-12 10:06

<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>


写回答 关注

1回答

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

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

    麓鹿不迷路

    ‘如把foucus随便改成一个名字,点击按钮一时该参数就显示在input文本框了。’但这个时候这个函数就没了获取焦点的作用。就只是自定义了一个普通事件。 所以就是说原生事件focus不能传参数是吗?

    2018-06-03 12:59:23

    共 2 条回复 >

jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题