如果您采用以下示例:http://jsfiddle.net/99yVq/2/并拖动其中一个顶部portlet并放入黑色区域的顶部(表示菜单),它会在捕捉到位置之前恢复到左上角。我假设这与我的动画方法(显示和隐藏不可见的占位符)有关,就像我按预期删除.show和.hide还原函数一样。
.sortable call:
$( ".content" ).sortable({
handle: '.portlet-header',
items: '>:not(.fixed)',
revert: true,
start: function(e, ui){
$(ui.placeholder).hide(300);
},
change: function(e,ui) {
$(ui.placeholder).show(300);
}
});
$( ".content" ).disableSelection();
有谁知道这个的原因?
提前致谢。
编辑如果您将它们拖到右侧或固定的portlet上,它们也会这样做。还剥夺了测试用例。
答案更新
考虑到下面的答案,我使用.animate更新the fiddle并设置宽度而不是隐藏占位符。动画不是那么粗犷,但它足够好!
答案 0 :(得分:1)
要排序的项目将附加到占位符(如果已设置)。当您隐藏占位符时,不会显示左侧的显示样式,而是将项目附加到正文。如果你想保留占位符但想要“隐藏”它,那么考虑一下它的样式 - 将它保存为块元素。
start: function (e, ui) {
$(ui.placeholder).css('width', 0);
},
change: function (e, ui) {
$(ui.placeholder).css('width', auto);
}