如何在js中阻止event冒泡

js
小樊
82
2024-10-09 07:07:30

在JavaScript中,要阻止事件冒泡,您需要在事件處理程序中使用event.stopPropagation()方法。這將阻止事件觸發(fā)其父元素或祖先元素上的事件處理程序。以下是一個(gè)示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Event Bubbling Example</title>
    <style>
        div {
            border: 1px solid black;
            padding: 20px;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <div id="parent">
        Parent
        <div id="child">
            Child
        </div>
    </div>

    <script>
        // 獲取父元素和子元素
        const parent = document.getElementById('parent');
        const child = document.getElementById('child');

        // 為父元素添加點(diǎn)擊事件處理程序
        parent.addEventListener('click', (event) => {
            alert('Parent clicked');
        });

        // 為子元素添加點(diǎn)擊事件處理程序
        child.addEventListener('click', (event) => {
            // 阻止事件冒泡到父元素
            event.stopPropagation();
            alert('Child clicked');
        });
    </script>
</body>
</html>

在這個(gè)示例中,當(dāng)您點(diǎn)擊子元素時(shí),只會(huì)彈出"Child clicked"消息,而不會(huì)彈出"Parent clicked"消息,因?yàn)槲覀冊(cè)谧釉氐氖录幚沓绦蛑姓{(diào)用了event.stopPropagation()方法來(lái)阻止事件冒泡。

0