self 和 stop修饰符

stop 修饰符的作用是阻止事件冒泡

self 修饰符的作用是只有当前的事件绑定的元素与当前元素一致时才触发

Stop:

复制代码
// 单击事件
clickRed(e){
  console.log("click:red,eventId:"+e.target.id)
},
clickGreen(e){
  console.log("click:green,eventId:"+e.target.id)
},
clickBlue(e){
  console.log("click:blue,eventId:"+e.target.id)
}
复制代码
// stop 情况
<div id="red" @click="clickRed" style="background-color: red;">
  <div id="green" @click.stop="clickGreen" style="background-color: green;">
    <div id="blue" @click="clickBlue" style="background-color: blue;"></div>
  </div>
</div>

当点击蓝色区域时,结果如下,蓝色冒泡到绿色,因为绿色 stop 禁止冒泡,所以停止,红色没有执行

 

 Self

可以看到,上述结果中,传入的事件元素均为蓝色 DOM 事件

若我们不想禁止冒泡,但又想某个元素在冒泡期间不触发事件,即可用 self

// self 情况
<div id="red" @click="clickRed" style="background-color: red;">
  <div id="green" @click.self="clickGreen" style="background-color: green;">
    <div id="blue" @click="clickBlue" style="background-color: blue;"></div>
  </div>
</div>

当点击蓝色区域时,结果如下,蓝色冒泡到绿色时,因为传入的事件元素非当前元素,故不触发绿色 DOM 事件,继续冒泡,触发红色 DOM 事件

posted @   邢韬  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示