首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止Vue中的事件冒泡

防止Vue中的事件冒泡
EN

Stack Overflow用户
提问于 2018-02-15 00:04:09
回答 5查看 60K关注 0票数 68
代码语言:javascript
复制
<div id="largeArea" v-on:click="do_X">
    <button>Button</button>
</div>

因此,我在Vue中有一个问题,我不想在单击按钮时触发"do_X“,尽管它是largeArea的一部分。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-02-15 00:09:02

文档中,使用self事件修饰符只捕获来自元素本身的事件。

代码语言:javascript
复制
<div id="largeArea" v-on:click.self="do_X">

代码语言:javascript
复制
new Vue({
  el: '#app',
  methods: {
    do_X () {
      console.log(Date.now(), 'do_X')
    }
  }
})
代码语言:javascript
复制
#largeArea {
  padding: 20px;
  border: 1px solid black;
}
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.js"></script>
<div id="app">
  <div id="largeArea" @click.self="do_X">
    <button>Button</button>
  </div>
</div>

票数 62
EN

Stack Overflow用户

发布于 2018-12-17 15:13:24

我发现在子元素上使用“停止”事件修饰符对我有效。例如

代码语言:javascript
复制
<div id="app">
  <div id="largeArea" @click="do_X">
    <button @click.stop="do_Y">Button</button>
  </div>
</div>
票数 112
EN

Stack Overflow用户

发布于 2020-10-21 18:57:19

防止容器<div>内的所有单击冒泡

代码语言:javascript
复制
<div @click.stop="" class="action">

  <button @click="someClickAction1()">Action 1</button>

  <button @click="someClickAction2()">Action 2</button>

<div>

防止在现有单击操作上冒泡

代码语言:javascript
复制
<button @click.stop="someClickAction()">Single Action</button>
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48798216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档