【发布时间】:2011-07-16 16:39:28
【问题描述】:
我有一个页面设置,其主要目的是允许用户将一组绿色块从一个滑动区域拖动到另一个滑动区域并重新排序(通过将一个块拖动到容器右侧来尝试)。
问题是,当我将它们从一个区域拖到另一个区域时,放置和一般可排序性是不可靠的,因为有时您可以放置框的区域会消失,或者框对齐不正确(如下图所示)
被拖拽之前
拖动时
正如您所看到的,当左上角的方块被拖动时,它会导致下方的方块“跳”到另一边。我认为这可能是由于 JS 中有占位符选项,就好像我将其删除一样,这不再发生:/
还有(更令人担忧),当从例如右边区域到左边,有时占位符甚至不显示!!
占位符未显示
我还必须在代码中使用$( "#areaOne, #areaTwo" ).sortable( "refresh" ); 才能让连接的容器甚至注意到一个块被拖入其中!也许它没有正确“刷新”..?
有人对我如何解决这些不可靠/不稳定的可排序问题有任何想法吗?
可以在这里找到实时代码> http://jsfiddle.net/WqZ9m/19/
更新:
从占位符类中移除边框已经解决了“跳跃”问题,但有时在区域之间拖动块时占位符仍然会消失。当滚动不发生时(即当您删除滚动代码并直接从一个区域拖动到另一个区域时),问题就出现了,所以我猜测问题出在主要的“if”语句中。
通过查看实时 HTML,我还注意到,当占位符消失时,它实际上是跳回到最初拖动它的区域!
更新代码> http://jsfiddle.net/WqZ9m/20/
这是当前问题的屏幕录像 > http://www.youtube.com/watch?v=V-mxOQ2ke28
你会看到占位符(黄色区域)消失了:/
非常感谢任何回复,谢谢
【问题讨论】:
-
“跳跃”问题是因为您的样式表。请注意它是如何为占位符添加边框的?这会导致其大小增加,从而移动剩余的固定元素。
-
啊,从占位符中移除边框的绝妙方法已经阻止了块“跳来跳去”,但是当块在区域之间拖动时,占位符有时仍然会消失:/ 这一定是一个 JavaScript 问题吧?
-
目前在我的 macbook air 上运行良好。
标签: jquery css jquery-ui jquery-ui-sortable