jquery ui sortable:元素宽度计算得太小

时间:2013-09-06 15:11:34

标签: jquery-ui jquery-ui-sortable

小提琴:http://jsfiddle.net/RqE2p/

sortable()个内联文字元素列表。元素是“第一”,“第二”,......等。其中一些问题(在我的情况下,例如“五号”和“二号”,但它取决于我认为的当前浏览器缩放)是一旦我开始拖动它,第二个单词转到第二行。

这是因为拖动时元素的宽度会发生变化。在Chrome Inspector,Computed Styles中,拖动前的“五号”宽度为75.19999px。拖动开始后,计算出的宽度为75px。所以,第二个单词不再适合第一行了。

对于此示例,我仅在Chrome中遇到问题。但在现实生活中,这也发生在FF中。我不知道,为什么在这个例子中,FF都可以。

是否有任何简单的方法来处理这个问题,除了制作一个javascript循环并将每个可排序元素的css宽度设置为当前宽度的1.1倍?

1 个答案:

答案 0 :(得分:2)

您可以使用CSS直接调整它,而无需涉及JavaScript: 最简单的解决方案是设置ul lis的高度并设置no-wrap以确保文本整齐地保持在一行:

ul li {
    height: 20px;
    white-space: nowrap;
}

这可以解决您的问题:)享受使用sortable!

编辑:你能提供更多细节吗?如果lis设置为white-space:nowrap;除非CSS被覆盖,否则你的文本不应该转到第二行。如果它为你的白色空间添加了一个重要的标签:nowrap; (例如,white-space:nowrap!important;)。它正在Chrome上放大110 +%