事件冒泡解决办法

本文介绍了JavaScript中常见的事件冒泡现象,即点击内层元素会触发内外层所有绑定的点击事件。通过示例展示了如何使用`event.stopPropagation()`方法阻止事件冒泡,以及在Vue中使用`.stop`修饰符实现相同效果。了解这一概念对于优化前端交互和提高代码效率至关重要。

事件冒泡解决办法

假设有外层元素和内层元素,两个元素都绑定了点击事件,当只点击内层元素会同时出发内层元素和外层元素的事件,就是事件冒泡

举个例子:
这里有内层的按钮,中层的 div 块和外层的 div 块

		<div @click = "outside" id = "outside">
            outside
            <div @click = "middle" id = "middle">
                middle
                <button @click = "inner">
                    点我
                </button>
            </div>
        </div>

在这里插入图片描述
绑定事件:

				inner: function(){
                    console.log('inner')
                },
                middle: function(){
                    console.log('middle')
                },
                outside: function(event){
                    console.log('outside')
                }

当只点击 button 按钮,输出如下:
在这里插入图片描述
这就是事件冒泡

解决办法:

1、 event.stopPropagation()
在会发生冒泡的事件中,在 event 事件上绑定 stopPropagation

					inner: function(){
                        console.log('inner')
                        event.stopPropagation()
                    },
                    middle: function(){
                        console.log('middle')
                        event.stopPropagation()
                    },
                    outside: function(event){
                        console.log('outside')
                    },

绑定 stop 事件修饰符

		<div @click = "outside" id = "outside">
            outside
            <div @click.stop = "middle" id = "middle">
                middle
                <button @click.stop = "inner">
                    点我
                </button>
            </div>
        </div>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值