【发布时间】:2020-06-06 12:28:06
【问题描述】:
我在我的一个项目中使用 jquery UI,我在其中获取拖动项目的坐标,然后使用它在画布上绘制文本。
然而,动态创建的可拖动元素相对定位自己,第二个元素总是给出不想要的css top和left值,因为它与第一个元素有关。
有没有办法改变位置属性或任何其他方法来实现与父级相关的顶部和左侧值。
这是一个 codepen ,当我拖动到当前位置上方时,您可以看到第二个元素给出了负值。
设置可拖动组件:
$(function() {
$( ".drag" ).draggable({
containment: ".container",
scroll: false,
drag: function() {
let top = $(this).css("top");
let left = $(this).css("left");
let index = $(this).data("index");
if(index == "1") {
document.getElementById("one").innerText = "top: " + top + " left:" + left;
}else {
document.getElementById("two").innerText = "top: " + top + " left:" + left;
}
}
});
});
【问题讨论】:
-
欢迎来到 Stack Overflow。建议使用
.position()、.offset()或传递给drag回调的ui.position。见:api.jqueryui.com/draggable/#event-drag