对于我要解决的问题,我有一个表格,每一行都有唯一的内容。允许通过句柄对行重新排序,并且每行的内容并不总是具有统一的高度。有时会在一行中出现大量文本和/或图像。
还可以有多个表的行可以重新排序,因此我使用包含属性来防止拖到其他区域以及在拖到所需区域之外时发生的其他问题。
问题是当我尝试将“高”行拖到订单的顶部或底部时,而顶部和底部相比之下是“短”的。本质上,我不允许将高大的行拖到这些位置。我一直在寻找解决方案,但发现不足。任何帮助,将不胜感激。
这里的工作示例:http: //jsfiddle.net/jeffvoigt/XyPzf/
中间的两行都不能拖到列表的顶部或底部。
HTML:
<div class="container">
<table id="sortable">
<tr class="odd">
<td><p>[=]</p></td>
<td>Single Line of Text</td>
</tr>
<tr class="even">
<td><p>[=]</p></td>
<td>Aenean porta, tellus quis auctor elementum, risus ante ornare augue, eu elementum nunc libero ut nisi. Pellentesque sed vestibulum tellus. Proin convallis enim eget felis iaculis viverra vestibulum lorem semper. Aliquam imperdiet viverra lorem, ut dignissim felis laoreet vel. Suspendisse fermentum neque eu est vestibulum bibendum. Maecenas dignissim egestas tempor. Ut tincidunt metus sed felis ornare nec sollicitudin risus gravida. Duis vitae mauris quis risus ultricies malesuada. Nulla facilisi. Phasellus fringilla, arcu eget congue sollicitudin, lorem elit ullamcorper ante, non fermentum orci mauris at tellus. Maecenas suscipit sodales molestie. Mauris luctus porta dui non volutpat.</td>
</tr>
<tr class="odd">
<td><p>[=]</p></td>
<td><img src="http://www.google.com/intl/en_ALL/images/logos/images_logo_lg.gif" /></td>
</tr>
<tr class="even">
<td><p>[=]</p></td>
<td>Single Line of Text</td>
</tr>
</table>
</div>
Javascript:
$( "#sortable tbody" ).sortable({
axis: "y",
containment: ".container",
cursor: "move",
handle: "p"
});