为使组件可拖动,我编写了一个新的vue指令,代码如下:
我会将它们绑定到可拖动上
```
Vue.directive('drag', {
bind: function () {
$(this.el).draggable();
}
});
我会将它们绑定到可拖动上
bind
。这在检查器中很好用,如果我拖动卡片,我可以看到top
和left
如何变化,但实际上并没有物理上移动!我的意思是卡片仍然停留在原地。
检查器截图。看起来不错。
我尝试过使用helper: "clone"
,这样可以工作(我可以看到克隆正在被拖动)。但这不是我想要的。
如果我通过类选择器选择每张卡片:
$(".card").draggable();
它也能正常工作,但是我不希望在添加新元素后再次使所有其他元素可拖动。
我做错了什么?
display: absolute
或display: relative
。你的 CSS 是否与此相互干扰了? - David K. HesssetTimeout(function () { $(this.el).draggable(); }.bind(this), 20);
通常情况下,jQuery会设置这个,但是你的评论指向了正确的方向。 - landundernextTick
在这种情况下可能是你需要的。它会在所有待处理的 DOM 更新完成后调用一个函数。 - David K. Hess