程序笔记   发布时间:2022-07-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了vue拖拽排序(vue-slicksort)点击失效的解决方式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

最近有个需求是常用应用模块,应用可拖拽进行排序,也可以点击进入新的页面,但是发现

SlickItem绑定click事件无效,然后找到其它方式解决了这个问题。
利用
sortStart和sortEnd事件判断拖拽开始和结束的坐标,如果坐标一致就视为点击就可以啦~
<!-- 拖拽 -->
      <SlickList
        v-model="alwaysList"
        :lock-to-container-edges="true"
        axis="xy"
        lock-axis="xy"
        class="slicksort_wrap"
        @input="getChangeList"
        @sort-start="moveStart"
        @sort-end="moveEnd"
      >
        <!-- slick_item_' + (index + 1) -->
        <SlickItem v-for="(item, indeX) in alwaysList" :key="index" :index="index" class="slick_item appli">
          <div class="iconBlock" :style="{BACkground: item.color}">
            <svg-icon class="img" :icon-class="item.icon ? item.icon : '#'" />
          </div>
          <div class="text">{{ item.menuName }}</div>
        </SlickItem>
        <div class="edit" @click="addMenu">编辑</div>
      </SlickList>

  

<script>
import { SlickList, SlickItem } from 'vue-slicksort';
export default {
  components: {
    SlickList,
    SlickItem
  },
  data() {
    return {
      alwaysList: [],
      startX: 0,
      startY: 0,
      endX: 0,
      endY: 0,
      lasTindex: 0
    };
  },
  methods: {
    moveStart(E) {
      this.startX = e.event.x;
      this.startY = e.event.y;
      this.lasTindex = e.index;
    },
    moveEnd(E) {
      this.endX = e.event.x;
      this.endY = e.event.y;
    },
    // 拖拽完成后重新排序
    getChangeList(list) {
      // 判断点击或者拖拽
      if (this.startX === this.endX && this.startY === this.endY) {
        this.$router.push(this.alwaysList[this.lasTindex].parentPath + '/' + this.alwaysList[this.lasTindex].path);
      } else {
        console.log(list);
      }
    }
  }
};
</script>

  

大佬总结

以上是大佬教程为你收集整理的vue拖拽排序(vue-slicksort)点击失效的解决方式全部内容,希望文章能够帮你解决vue拖拽排序(vue-slicksort)点击失效的解决方式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。