其他分享
首页 > 其他分享> > vue自定义指令

vue自定义指令

作者:互联网

分享一下自己写的一些vue自定义指令

1、自动获取输入框的焦点

      autoFocus: {
        inserted: function (el) {
          el.focus()
          // el.querySelector('input').focus()//elementui的el-input版本
        }
      },

2、列表拖拽排序

dragSort: {
        /*
        * @params bingding: {
        *      @params index: number,//当前索引
        *      @params list: Array//列表
        * }
        * */
        inserted: function (el, binding) {
          el.setAttribute('draggable', 'true');
          el.addEventListener('dragstart', function (e) {
            e.dataTransfer.setData('index', binding.value.index);
          });
          el.addEventListener('dragover', function (e) {
            e.preventDefault();
          });
          el.addEventListener('drop', function (e) {
            e.preventDefault();
            let oldIndex = e.dataTransfer.getData('index');
            let newIndex = binding.value.index;
            if (oldIndex === newIndex) {
              return;
            }
            let list = binding.value.list;
            let newList = [...list];
            list.splice(oldIndex, 1);
            list.splice(newIndex, 0, newList[oldIndex]);
          });
        },
      },

 

标签:function,el,vue,自定义,index,binding,list,指令,oldIndex
来源: https://www.cnblogs.com/cuteyuchen/p/16387373.html