我一直在使用 JQuery 可排序网格,并且遇到了一个奇怪的问题,即当有 2 个或更多与该connectWith
选项链接的可排序网格时,拖动/占位符会中断。到目前为止,我已经在 Chrome、Firefox 和 Safari 中测试并确认了相同的行为。
似乎拖动忽略了鼠标位置,并且占位符位置显得有些随机。
示例: http ://wilhall.com/tests/apptest.html
当网格未使用以下方法连接时,上述问题已修复connectWith
:
示例: http ://wilhall.com/tests/apptest_2.html
本能地,我决定将我的代码放入 jsfiddle 来发布这个问题,但是当我这样做时,在 jsfiddle 上查看时错误不存在:
小提琴:http: //jsfiddle.net/B2ddx/1/
以下是我对两个可排序网格的配置选项:
$(".modules.app").sortable({
cursor: "move",
distance: 1,
revert: 100,
scroll: true,
tolerance: "intersect",
opacity: 0.6,
connectWith: ".modules.bin",
placeholder: "placeholder",
forcePlaceholderSize: true
}).disableSelection();
$(".modules.bin").sortable({
cursor: "move",
distance: 1,
revert: 100,
scroll: true,
tolerance: "intersect",
opacity: 0.6,
connectWith: ".modules.app",
placeholder: "placeholder",
forcePlaceholderSize: true
}).disableSelection();
我更新了我的示例页面,使其不包含除 jquery 和 jquery-ui 之外的外部 CSS 或 JS,现在使用与 jsfiddle 相同的 jquery 和 ui 版本,以确保一切正常,但问题仍然存在。
我真的很困惑可能导致这种情况的原因,并且在我尝试新的解决方案时会继续发布更新。
更新:
在 JSFiddle 中,该connectTo
选项无法正常工作,并且实际上并没有链接列表 - 这就是问题不存在的原因。
li
此外,当可排序元素不浮动时,问题也不存在。
更新: 按照建议,我删除了包含可排序项目的元素的任何百分比高度,这解决了问题,但又创建了另一个问题:没有任何高度(容器的高度为 0),项目无法在两个可排序网格之间拖动。
为了解决这个问题,我尝试向可排序容器添加float:left
和/或height: 500px
,但存在同样的问题。
这是一个展示问题的简化JSFiddle:http: //jsfiddle.net/y8xrZ/
如果您connectWith
从呼叫中删除该选项.sortable
,问题就会消失。请注意,此错误会影响正在使用的可排序容器connectWith
。因此,在示例中,仅从容器中删除仅connectWith
解决了容器#app
的问题,但不能解决容器的问题。#app
#bin