Vue.Draggable 不同的行为取决于放置位置

Vue.Draggable different behaviour depends on drop location

我正在使用 Vue.Draggable 进行一些拖放操作。

是否可以从移动元素更改为克隆取决于您拖动它的位置?

即。如果我将它拖放到 A 区,我想要移动元素的正常行为 但如果我将它拖放到 B 区,我想改为克隆该元素。

有人知道怎么做吗?谢谢

您可以使用 putpull 作为动态控制行为的函数。请参阅 group 选项。

<div id='app'>
  <draggable class='area' :group='group' :list='list1'>
    <div class='item' v-for='element in list1' :key='element.name'>
      {{ element.name }}
    </div>
  </draggable>
  <draggable class='area' group='foo' :list='list2' data-zone='A'>
    <div class='item' v-for='element in list2' :key='element.name'>
      {{ element.name }}
    </div>
  </draggable>
  <draggable class='area' group='foo' :list='list3' data-zone='B'>
    <div class='item' v-for='element in list3' :key='element.name'>
      {{ element.name }}
    </div>
  </draggable>
</div>
group() {
  return {
    name: 'foo',
    put: false,
    pull(to) {
      let zone = to.el.dataset.zone
      switch (zone) {
        case 'A': return true
        case 'B': return 'clone'
      }
      return false
    }
  }
}

Example