问答详情
源自:1-1 [DOM] 事件冒泡

事件冒泡所有事件都执行吗?

想知道,事件冒泡的时候,是所有的事件都会执行吗?比如一个点击click事件发生,父包裹层也有点击事件会执行吗?假如还有mousedown呢?

提问者:慕粉3146726 2016-04-20 09:30

个回答

  • 于Sir_
    2017-11-21 11:41:02

    刚才已经尝试 如果父类有同类事件可以冒泡执行 但是如果触发事件与父类事件不同则不会冒泡触发

    <div onclick="alert(123)">

    <button type="button" class="btn btn-default" onmousedown="alert(1)">button</button>

    </div>

    ----上面这段点击button只会弹出1

    <div onclick="alert(123)">

    <button type="button" class="btn btn-default" onclick="alert(1)">button</button>

    </div>

    ----上面这段因为父类与子类为同一类型事件所以点击button会弹出1 之后弹出123


  • 接下来看啥
    2016-04-20 10:32:39

    是的

    事件的传播是可以阻止的:
    • 在W3c中,使用stopPropagation()方法
    • 在IE下设置cancelBubble = true;
    在捕获的过程中stopPropagation();后,后面的冒泡过程也不会发生了~


    阻止事件的默认行为,例如click <a>后的跳转~
    • 在W3c中,使用preventDefault()方法;
    • 在IE下设置window.event.returnValue = false;

    参考自:http://www.jb51.net/article/42492.htm