javascript - Jquery UI 可在滚动网页上排序

标签 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 的所有可能参数,甚至尝试深入研究源代码,但没有成功。

最佳答案

我实际上付了一些钱来找出这个错误是什么。该错误修复是一行代码。

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

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

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

关于javascript - Jquery UI 可在滚动网页上排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31887539/

相关文章:

javascript - Node.js/jade——如何将 mysql 数据作为局部变量传递到内联 javascript 中?

JQuery:从字符串中删除字符/选择

javascript - ASP.NET MVC - AJAX 提交表单不会触发适当的事件

javascript - 简单 jQuery 上的 IE 错误

javascript - 在我的 Jquery 插件中执行循环的更好方法?

javascript - 使用 CrossRider 的 DatePicker 不工作?

jquery - 向 jQuery slider 添加刻度线?

javascript - 如何动态地将 jquery ui 事件处理程序添加到动态创建的按钮?

asp.net - 从 VB.NET 配置 ChartJS

jQuery - 如何检查元素是数组还是单个元素