事件冒泡

2022-10-09  本文已影响0人  苍老师的眼泪

假如 div 里面有一个 button, 它们两个都绑定了 click 事件,当我们点击里面的 button 的时候,默认情况下事件会冒泡到 div,由于这种 dom 事件是宏任务,所以如果 button 的 click 回调里面有微任务就绪的话,会先执行这个微任务(队列),然后再继续冒泡。

    <div onclick="divclick()">
        div
        <button onclick="btnclick()">button</button>
    </div>

    <script>
        function btnclick() {
            console.log('btn click')
            Promise.resolve().then(() => {
                console.log('micro task')
            })
        }

        function divclick() {
            console.log('div click')
        }
    </script>

以上示例会依次打印:btn click > micro task > div click。

上一篇下一篇

猜你喜欢

热点阅读