滚动网页上的 jquery ui 可排序插件似乎存在问题。我用它来重新排序表行(并将它们从一个表移动到另一个表)。恕我直言,当网站滚动时,从底部表格到顶部表格的拖放行为不正确。拖动元素的占位符不会插入到新表的最底部位置,而是插入到其后的几行中。有时是上面 2 行,有时甚至是 3 行。直到鼠标光标抬起来,它就坏了。一旦鼠标向下移动至少 1 个像素,它就会重新定位并固定。
这是页面不滚动时的工作原理屏幕截图(左侧),以及稍后滚动一点时的同一页面(右侧):
代码很简单:
$( ".sortable tbody" ).sortable({"axis": "y", "cursor": "move", 'tolerance': 'pointer', 'cursorAt': { top: 20, left: 20 }, 'scroll': false,
"connectWith": $('.sortable tbody'),
"items" : 'tr:not(.nosort)'
});
$('body').scrollTop(340);
jsfiddle
如何解决此问题?目标是确保其行为与网页不滚动时相同。
我玩了一整天,尝试了 jquery ui 的所有可能参数,甚至尝试深入研究源代码,但没有成功。
最佳答案
我实际上付了一些钱来找出这个错误是什么。该错误修复是一行代码。
- axis = floating ? "clientX" : "clientY";
+ axis = floating ? "pageX" : "pageY";
我将尝试将修复传播到 jquery-ui 源。
更新:花了大约一年的时间,但更改应该最终在当前的 jquery UI 中被接受。
关于javascript - Jquery UI 可在滚动网页上排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31887539/