javascript - 用卡片实现 Vue 可拖动?

标签 javascript vue.js vuetify.js sortablejs vuedraggable

我正在尝试实现 vuedraggable使用 Vuetify Cards,但由于某种原因,当卡片在单行中时拖放不起作用,但在列中时起作用。

看看这个工作CodeSandbox .

Parent.vue文件,如果我删除 <v-layout> </v-layout>包装 <HelloWorld />组件,卡片进入一列,拖放再次开始工作。

这是我的 HelloWorld 组件:-

<template>
  <v-flex xs4>
    <v-card class="mx-4">
      <v-img :src="src"></v-img>
      <v-card-title primary-title>
        <div>{{title}}</div>
      </v-card-title>
    </v-card>
  </v-flex>
</template>

<script>
export default {
  name: "HelloWorld",
  props: {
    title: String,
    src: String,
    id: Number
  },
  data() {
    return {};
  }
};
</script>

这是我的父组件:-
<template>
  <v-container>
    <v-layout class="mt-5 align-center justify-center row fill-height">
      <h2>Parent Component</h2>
    </v-layout>
    <draggable v-model="draggableCards">
      <v-layout>
        <template v-for="(tech,i) in getCardArray">
          <HelloWorld :src="tech.src" :title="tech.title" :key="i"/>
        </template>
      </v-layout>
    </draggable>
  </v-container>
</template>

<script>
import { mapGetters, mapMutations } from "vuex";
import HelloWorld from "./HelloWorld";
import draggable from "vuedraggable";
export default {
  components: {
    draggable,
    HelloWorld
  },
  computed: {
    ...mapGetters({
      getCardArray: "getCardArray"
    }),
    draggableCards: {
      get() {
        return this.$store.state.cardArray;
      },
      set(val) {
        this.$store.commit("setCardArray", val);
      }
    }
  },
  methods: {
    ...mapMutations({
      setCardArray: "setCardArray"
    })
  }
};
</script>

如果有人可以帮助我解决这个问题,我肯定会很感激。谢谢你。

最佳答案

尝试使用可拖动容器作为 v-layout , 像一个:

<draggable tag="v-layout" v-model="draggableCards">

您可以查看代码here

关于javascript - 用卡片实现 Vue 可拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61616179/

相关文章:

javascript - Vuetify - 改变卡片加载方式?

支持 ES 6 的 Javascript 片段运行器(如 jsFiddle)

javascript - 获取放置的div JQUERY的坐标

javascript - 如何从 .vue 文件中导出多个对象

javascript - 如何在 VueJS 中添加自定义排序?

html - 使用日期输入删除 vuetify v-text 字段上的向下箭头

javascript - XMLHttpRequest 跨域

javascript - 覆盖所有类的 css 选择器(*选择器)

vue.js - 为什么Webstorm的Vue插件应用后不起作用?

javascript - 是否可以以同步模式执行 $emit 并从 emit 事件中获取结果