jQuery 可滚动定位错误 + jsfiddle 演示

jQuery scrollable positioning bug + jsfiddle demo

我正在尝试使用 jQuery 的排序功能。但是有一个错误。当包含的父位置设置为 relative 时,我向下滚动。它不会工作。它会在与另一个元素碰撞后重新开始工作。在那之前,它将被放置在很远的地方。下次我尝试对任何其他元素进行排序时,它将正常工作。

Here an demostration

复制:https://jsfiddle.net/agef2ypo/

代码非常简单

$(".sortable").sortable({
  items: '.sortme',
  containment: "parent",
  tolerance: "pointer"
});

我尝试触发手动更新事件。它没有用。我现在能做什么?谢谢

你的 JSFiddle works 如果你删除 position: relative; 到可排序的元素。

$(".sortable").sortable({
  items: '.sortme',
  containment: "parent",
  tolerance: "pointer"
});

/* 
// === Wrong in JSFiddle
$(".sortable").sortable({
  items: '.sortme',
  containment: "parent",
  tolerance: "pointer"
}).css('position', 'relative');
*/

更新

有点棘手但有效。本质上我模拟了第一个 drag/drop 移动 1px.

根据 MIT 许可,simulate 函数需要外部库:

This is the result on JSFiddle

JS代码:

$(".sortable").sortable({
  items: '.sortme',
  containment: "parent",
  handle: '.move',
  tolerance: "pointer",
  helper: 'clone',
  create: function(event, ui) {

    let el = $(this).find('.sortme:first .move');
    el.simulate("drag", {
        dx: 1,
        dy: 1
    });

  }

});