jQuery UI可排序还原:还原到左上角

时间:2014-02-03 14:27:18

标签: javascript jquery jquery-ui jquery-ui-sortable

如果您采用以下示例: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并设置宽度而不是隐藏占位符。动画不是那么粗犷,但它足够好!

1 个答案:

答案 0 :(得分:1)

要排序的项目将附加到占位符(如果已设置)。当您隐藏占位符时,不会显示左侧的显示样式,而是将项目附加到正文。如果你想保留占位符但想要“隐藏”它,那么考虑一下它的样式 - 将它保存为块元素。

start: function (e, ui) {
  $(ui.placeholder).css('width', 0);
},
change: function (e, ui) {
  $(ui.placeholder).css('width', auto);
}