vue 中自定义指令改变data中的值

通过局部自定义指令实现了一个拖动的指令

html:

<div style="position:absolute;width:100px;height:100px;border:1px solid red" v-drag="{set:set}"></div>

script:

methods:{

set(x,y){

this.data.x=x;

this.data.y=y;

}

},

directives:{

// 拖动的自定义指令

drag(el,binding){

//el为拖动的元素

var oDiv =el;
 oDiv.onmousedown = function(e){
   e.preventDefault();
          e.stopPropagation();
   var disX = e.offsetX;
   var disY = e.offsetY;
   document.onmousemove = function(e){
    e.preventDefault();
e.stopPropagation();
    var x=e.pageX-disX;
    var y=e.pageY-disY

    oDiv.style.left=x

oDiv.style.top=y

    // 通过传参的形式,将methods中的函数传进来,以此来改变data中的值
   binding.value.set(x,y)
   };
   document.onmouseup = function(){
    document.οnmοusemοve=null;
    document.οnmοuseup=null;
   };
 };
}
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值