我试图让一个元素的可拖动功能取决于点击事件。我正在使用jquery-ui的可拖动方法(在vue.js实例中)。可拖动Vue.js,无法返回到原始位置
在我的Vue的例子中,我有这两个数据属性:ISVISIBLE和isDraggable。每次用户点击一个按钮时,它们都会呈现出真实或虚假的值。在我的方法对象,我有以下:
methods: {
toggleBox: function() {
this.IsVisible = !this.IsVisible;
this.isDraggable = !this.isDraggable;
}
}
我使用破坏方法才能有针对性体返回到原来的位置(文档here)。但是,我没有得到预期的结果,可以在下面的jsfiddle中看到。以下是许多(不成功)一个attemtps来解决这个问题:
ready: function() {
this.$nextTick(function() {
if (this.isDraggable == true) {
$('.box').draggable({
containment: "window"
})
} else if (this.isDraggable == false) {
$('.box').draggable(
"destroy"
)
}
})
}
的jsfiddle here。我不知道我在这里做错了什么?任何暗示赞赏。
尝试了jqueryui的_revert_方法,但无济于事。 Jsfiddle [here](http://jsfiddle.net/pierrebonbon/7zp5er3f/29/) – pierrebonbon
我在'nextTick'函数内放置了一个'console.log',它在初始加载时只被触发一次。如何在'toggleBox'中添加一些逻辑来使用jquery的'offset'方法重置元素的位置?因此,当可见性设置为false时,您可以重置位置,例如$('。selector')。offset({top:0,left:0});'?,其中'top'和'left'的值由您定义。 – Yass
谢谢你的提示,我试过了,但我遇到了和以前一样的问题。也就是说,不管使用什么方法,_isVisible_的价值对盒子的位置没有直接的影响。也许vm。$ watch可以在这里使用。 – pierrebonbon