[Vue] 解決使用Vue.Draggable排序表格無效問題

本文最後更新於:2023年12月10日 凌晨

一、問題

在使用Sortable.js的Vue.js版本套件Vue.Draggable
遇到排序div區塊沒問題,但是排序table就沒辦法拖曳排序的問題
程式碼如下:

<table>
    <draggable
        v-model="products"
        tag="tbody"
        element="tbody"
        handle=".handle"
    >
        <tr v-for="product in products" :key="product.id">
            <td>
                <i class="move-icon" style="font-size: 1.5rem"></i>
            </td>
            <td>
                {{ product.name }}
            </td>
        </tr>
    </draggable>
</table>

二、原因

因為這段程式碼寫在html模板的檔案中,而不是.vue檔
可以根據官方網站的說明修改
使用is特殊屬性:

<tbody is="draggable">

可以達到與下列相同的效果

<draggable tag="tbody">

三、修正後的程式碼

修正後的程式碼如下:

<table>
    <tbody
        is="draggable"
        v-model="products"
        element="tbody"
        handle=".handle"
    >
        <tr v-for="product in products" :key="product.id">
            <td>
                <i class="move-icon" style="font-size: 1.5rem"></i>
            </td>
            <td>
                {{ product.name }}
            </td>
        </tr>
    </tbody>
</table>

[Vue] 解決使用Vue.Draggable排序表格無效問題
https://hankz1108.github.io/posts/20231113-vue-draggable-table-useless/
作者
Hankz
發布於
2023年11月13日
更新於
2023年12月10日
許可協議