我有一个相当简单的水平浮动项目列表,如下所示:
<div class="my-widget-container">
<div class="my-widget-column">...</div>
...
</div>
容器和每列都有固定的宽度,使用jQuery的.width()
设置。容器为position: relative
,列为float: left
和overflow: hidden
。不确定是否有任何其他样式/属性。
当我将jQuery-UI应用于此时,结果正如我在Chome 8和IE 8中所期望的那样;可以拖动列来更改其顺序。但是在Firefox 3.6中,我可以单击一个项目并拖动以创建一个新的排序助手,但实际的排序从未发生过;真实物品在DOM中的位置永远不会改变。
我在Sortable中挖了一点,并向_intersectsWithPointer
添加了调试打印。每当拖动帮助程序移动时,Sortable都会遍历其元素列表,并使用此方法来确定拖动帮助程序是否已经过了一个。我看到的是item.left
对我的所有列都有相同的值,这显然是不正确的,可能是问题的根源。看起来所有列的left
位置都与第一列的位置相对应。
我正在使用jQuery 1.4.3和jQuery UI Sortable 1.8。这些不是最新版本,但它们是最近的版本,我在Sortable发行说明中没有看到任何表明任何此类问题已修复的内容。
有谁知道这里可能会发生什么,或者有进一步调试的想法?