jQuery 当位置为绝对时,可拖动元素在拖动开始时更改位置

jQuery draggable element changes position on drag start when position is absolute

当我单击该项目并开始拖动它时,它会更改它在拖动开始时的初始位置。这些元素在样式属性中具有 "left" 和 "top" 属性。当他们有绝对位置时会发生这种情况。

和 jquery: 最初是这样的:$('.tree li').draggable();

我也试过这个:

$('.tree li').draggable({
  containment: '.tree',
    snap: '.tree',
    start: function (event, ui) {
      if ($(event.target).is('.ui-draggable-dragging')) {
          var x = $(event.target).offset().left;
          var y = $(event.target).offset().top;
          $(this).css({
              'left': x,
              'top': y
          });
        }
      }
});

容器是相对的,只有列表项是绝对的。当列出项目时,它们具有带有位置设置的样式属性。当我单击一个项目时,一开始它会更改它的位置并从更改后的位置开始拖动,而不是从我单击它时的位置开始拖动。

这是一个fiddle: https://jsfiddle.net/oe2955m5/

这是因为父容器的规模属性。当我取下秤时,它们会按预期移动。