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

说一下自己的理解,避免踩坑

说一下我的理解:

trigger是自动执行,triggerHandle也是自动执行,这都知道了吧,

这一节让我们区分它们之间的区别,trigger自动执行是会有冒泡发生的,点击button:first时候trigger自动执行a的绑定事件click(就是点击<a>),trigger是会冒泡的!所以点击了<a>标签就点击了它所在的<div>,<div>有alert的事件就会发生,聚焦事件就不说了;

再说一下,triggerHandle,他不会发生冒泡,所以当点击button:last时候呢,就不会出现alert啦,就仅仅是点击了<a>标签和聚焦操作。

他们的作用呢,我觉得就是自动执行了,比如加载网页就要弹出什么一类的操作。


提问者:莫龙吟啸 2019-04-02 20:38

个回答

  • 莫龙吟啸
    2019-04-02 20:39:26

     $("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","没有触发默认聚焦事件");
        });