12

如何设置只能.btn-drag拖动整行?我正在使用https://github.com/SortableJS/Vue.Draggable

目前我也可以拖动button#options不想要的

    <draggable v-model="textElements">
        <transition-group>
            <div class="is-draggable" v-for="element in textElements" :key="element.text">
                <div>
                    {{ element.text }}
                </div>
                <button class="btn btn-transparent">Options</button>
                <button class="btn btn-transparent btn-drag">Drag</button>
            </div>
        </transition-group>
    </draggable>

在文档中,他们提到我们可以放置:move="checkMove"<draggable>但在功能中我不确定如何检查到底拖动了什么?返回 false 通常可以正常禁用拖动

methods: {
    checkMove(evt) {
        console.log(evt)
        return false
    }
}

Console.log(evt) 显示了这一点,但我不确定我可以使用哪个属性来准确确定是什么开始了拖动https://image.prntscr.com/image/r17zNkxoSWGdVQs_5nR09w.png

4

5 回答 5

16

该功能称为“句柄”。

https://github.com/SortableJS/Vue.Draggable#features

https://github.com/SortableJS/Vue.Draggable#options

https://github.com/RubaXa/Sortable#options
handle选项在这里应该有所帮助。

于 2017-12-27T02:01:34.557 回答
6

从 2.19 版本开始,您可以使用

<draggable handle=".handle">
于 2019-03-07T23:19:50.300 回答
4

这里带有“item”类的元素只是可拖动的,可以像这样指定 draggable=".item" 使用可拖动标签内的可拖动选项

<draggable v-model="myArray" draggable=".item">
<div v-for="element in myArray" :key="element.id" class="item">
    {{element.name}}
</div>
<button slot="header" @click="addPeople">Add</button>
于 2021-03-24T10:06:25.690 回答
0

可以:not()为多个元素组的特定元素使用选择器

<draggable v-model="myArray" draggable=".item:not(.exclude-this-item)"> 
  <div v-for="element in myArray" :key="element.id" class="item exclude-this-item"> 
    {{element.id}}
  </div>
  <div v-for="element in myArray" :key="element.name" class="item">
    {{element.name}}
  </div>
  <div v-for="element in myArray" :key="element.city" class="item">
    {{element.city}}
  </div>
</draggable>
于 2022-02-02T08:56:37.207 回答
0

您必须在可拖动组件中传递一个道具。

例子:

<draggable :options="{handle: '.drag-only-this'}">

在这里探索更多是一个所有可排序的选项

于 2021-12-29T09:25:57.300 回答