vue+sortablejs进行列表排序

别人再好是别人的,自己好才是自己的

第一步:安装
···
npm install sortablejs --save-dev
···
第二步:使用


<template>
        <ul ref="list" class="list" id="list">
            <li v-for="(item,index) in items" :key="index">
               <div>{{item.name}}</div>
            </li>
        </ul>
</template>
<script>
    import Sortable from 'sortablejs'
    export default {
        data() {
            return {
                items: [{
                    id:1,
                    name: '李大玄',
                }, {
                    id:2,
                    name: '李大玄1',
                },],
                obj: undefined,
            }
        },
        mounted () {
            var _this = this;
            var $ul = this.$refs.list
            this.$nextTick(() => {
                _this.asd($ul)
            })
        },
        methods:{
            btnUp(index){
                var item = this.items[index];
                this.items.splice(index,1);
                this.items.unshift(item);
            },
            asd($ul) {
                var _this = this;
                this.obj = new Sortable($ul, {
                    handle: '.lkhzbdj',
                    onUpdate:function(event){
                            var newIndex = event.newIndex,
                                oldIndex = event.oldIndex,
                                $li = $ul.children[newIndex],
                                $oldLi = $ul.children[oldIndex];
                                
                            $ul.removeChild($li)    
                            if(newIndex > oldIndex) {
                                $ul.insertBefore($li,$oldLi)
                            } else {
                                $ul.insertBefore($li,$oldLi.nextSibling)
                            }
                            var item = _this.items.splice(oldIndex,1)
                            _this.items.splice(newIndex,0,item[0])
                            this.obj = null;
                    },
                    animation: 150,
                })

            }
        }
    }
</script>
<style scoped>
li {
    display: flex;
    background-color: pink;
    margin-bottom: 10px;
}
</style>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值