jQuery的sorting占位符高度问题

出于某种原因,我的可sorting项目的占位符大约是10px。 我所有的sorting项目都有不同的高度。 我如何更改每个占位符的高度以匹配正在移动的项目?

我通常通过绑定一个callback函数来解决这个问题,该callback函数将占位符的高度设置为正在分类到start事件的项目的高度。 这是一个简单的解决scheme,可以让您精确地控制如何显示占位符。

 $( ".column" ).sortable({ connectWith: ".column", start: function(e, ui){ ui.placeholder.height(ui.item.height()); } }); 

查看更新的testing用例

你有没有尝试设置forcePlaceholderSize:true属性? 阅读jQuery UI Sortable 文档页面 。

你的元素是否display: block ? 内联元素可能会使占位符无法正确保持高度。 例如。 这jsFiddle似乎有一个类似的问题,你所描述的。 将display: block添加到.portlet类可以修复它。

而不是使用“ui.item.height()”,你也可以使用“ui.helper [0] .scrollHeight”来稳定的结果。

 $( ".column" ).sortable({ connectWith: ".column", start: function(e, ui){ ui.placeholder.height(ui.helper[0].scrollHeight); } }); 

您可以为占位符设置一个样式作为可sorting的选项。

 $( "#sortable" ).sortable({ placeholder: "ui-state-highlight" }); 

只要给这种风格一个高度。 希望工程。

在我的情况下,我发现类似于JP Hellemons的解决scheme,其中我强制占位符的高度(with !important )定制,并设置与背景的可见性,以查看自己的变化(也可以用这种方式您的占位符)。

这也适用于display: inline-block;

 .ui-sortable-placeholder { background:red !important; height: 2px !important; // this is the key, set your own height, start with small visibility: visible !important; margin: 0 0 -10px 0; // additionaly, you can position your placeholder, } // in my case it was bottom -10px