You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify:v-img未设置draggable仍可拖拽的问题求助

解决v-img组件draggable属性无效的问题

问题根源

原生<img>标签默认具备拖拽行为,Vuetify的v-img组件作为封装层,直接设置:draggable="false"可能无法正确传递到底层的原生img元素上,导致默认拖拽逻辑依然生效——这就是你即使设置了属性,元素仍可拖拽的原因。

可行解决方案

1. 直接给原生img绑定draggable属性

利用v-img的attrs绑定能力,将draggable属性直接传递给内部原生img:

<v-img v-else class="cannotDrag"
  :src="cell.content"
  width="40"
  :attrs="{ draggable: false }"
></v-img>

2. 通过CSS禁用拖拽

用CSS样式彻底阻断拖拽行为,同时可以顺便禁用文本选择(避免拖拽时选中文本):

.cannotDrag img {
  user-drag: none;
  -webkit-user-drag: none;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
}

3. 修正动态绑定逻辑

如果需要根据条件动态控制拖拽状态,确保属性正确作用到原生元素:

<v-img v-else class="cannotDrag"
  :src="cell.content"
  width="40"
  v-bind="$attrs"
  :draggable="false"
></v-img>

关于临时方案的说明

你通过@dragstart调用preventDefault()的方式确实能生效,这是从事件层面拦截了拖拽触发,但上述方案从元素属性或样式层面直接禁用拖拽,更贴合你“无需额外事件处理”的预期。

内容的提问来源于stack exchange,提问作者quilkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:52:48