我有一张这样的表:
<table id="sortable">
<tr id="d1" class="mainrow"><td class="handle">O</td><td>Item 1</td></tr>
<tr id="d1b"><td> </td><td>blah</td></tr>
<tr id="d2" class="mainrow"><td class="handle">O</td><td>Item 2</td></tr>
<tr id="d2b"><td> </td><td>blah</td></tr>
<tr id="d3" class="mainrow"><td class="handle">O</td><td>Item 3</td></tr>
<tr id="d3b"><td> </td><td>blah</td></tr>
<tr id="d4" class="mainrow"><td class="handle">O</td><td>Item 4</td></tr>
<tr id="d4b"><td> </td><td>blah</td></tr>
</table>
以及以下用于设置可排序属性的javascript:
$( "#sortable tbody" ).sortable({
stop: hasChanged,
handle: '.handle',
cursor: 'move',
items: ".mainrow"
});
当我移动一个奇数行时,我希望将奇数和偶数行保持在一起(即使行没有句柄,也无法拾取)。
我的hasChanged函数在发生丢弃后移动偶数行,但拖动时视觉效果看起来不对;差距出现在奇数行之下,我希望它出现在偶数行之下,因为它是在hasChanged函数完成之后它将会结束的。
任何人都知道怎么做?
答案 0 :(得分:1)
没关系,想通了:
$( "#sortable tbody" ).sortable({
stop: hasChanged,
over: movePlaceholder,
handle: '.handle',
cursor: 'move'
});
我只是在movePlaceholder函数中更改占位符的位置:
function movePlaceholder(e, ui)
{
if (ui.placeholder.prev().attr("id").length == 2)
ui.placeholder.insertAfter(ui.placeholder.next());
}
根据要求,hasChanged函数:
function hasChanged(e, ui)
{
var newPosition = ui.item.index();
var id = ui.item.attr("id");
// whatever you need to do goes here
}