父元素设置mousedown之后子元素的dragstart事件就不触发了?

作者站长头像
站长
· 阅读数 25
<div
  ref="wrap"
  class="table-main"
  @dragenter="handlePrevent($event)"
  @dragover="handlePrevent($event)"
  @drop.capture="handleDrop($event)"
  @mousedown="down($event)"
  @mouseup="up($event)"
  @mousemove="move($event)"

>
  <div
    v-for="(item, index) in tables"
    :key="index"
    class="table-item"
    :style="{
      left: item.x + 'px',
      top: item.y + 'px',
      transform: `rotate(${item.angle}deg)`
    }"
    @dragstart.stop="curDragstart($event, index)"
    draggable="true"
    @click.stop="handleTable(index)"
  >
    <span>{{ item.name }}</span>
  </div>
</div>

给table-main添加mousedown这些鼠标事件之后,拖拽子元素table-item,他的dragstart就不触发了,直接触发父元素的mousedown事件,但是我明明给子元素添加了.stop阻止向上冒泡,问什么还是会直接触发table-main的mousedown呢?

回复
1个回答
avatar
test
2024-06-26

给子元素加一个 @mousedown.stop="" 试试因为你子元素的 mousedown 冒泡出去了触发了父元素的 mousedown

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容