滚动网页上的Jquery UI可排序

时间:2015-08-07 22:29:45

标签: javascript jquery jquery-ui

滚动网页上的jquery ui可排序插件似乎存在问题。我用它来重新排序表行(并将它们从一个表移动到另一个表)。当滚动网站时,从底部表格到顶部表格的拖放并不能正常运行恕我直言。拖动元素的占位符不会插入到最底部位置的新表中,而是插入到其后的几行中。有时它是2,有时甚至是3行。在鼠标光标上升之前,它会被打破。一旦鼠标向下移动至少1个像素,它就会被重新定位并修复。

这是截图页面未滚动(左侧)时的截图,以及稍后滚动一点(右侧)时的同一页面:

enter image description here

代码很简单:

  $( ".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的所有可能参数,甚至试图深入挖掘源代码,但我没有成功。

1 个答案:

答案 0 :(得分:1)

我实际上付了一些钱来找出错误是什么。错误修正是一行的。

-    axis = floating ? "clientX" : "clientY";
+    axis = floating ? "pageX" : "pageY";

我将尝试将修复程序传播到jquery-ui源。

更新:花了大约一年时间,但最终应该在jquery UI current中接受更改。