Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery UI可排序还原:还原到左上角_Javascript_Jquery_Jquery Ui_Jquery Ui Sortable - Fatal编程技术网

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

Javascript jQuery UI可排序还原:还原到左上角,javascript,jquery,jquery-ui,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Jquery Ui Sortable,如果您以下面的示例为例:拖动其中一个顶部portlet并放到黑色区域(表示菜单)的顶部,它将在捕捉到位之前恢复到左上角。我假设这与我的动画方法(显示和隐藏不可见的占位符)有关,就像我按预期移除.show和.hide还原函数一样 .可排序呼叫: $( ".content" ).sortable({ handle: '.portlet-header', items: '>:not(.fixed)', revert: true, start: function(e

如果您以下面的示例为例:拖动其中一个顶部portlet并放到黑色区域(表示菜单)的顶部,它将在捕捉到位之前恢复到左上角。我假设这与我的动画方法(显示和隐藏不可见的占位符)有关,就像我按预期移除.show和.hide还原函数一样

.可排序呼叫:

$( ".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上,编辑它们也会这样做。还剥离了测试用例

更新答案


考虑到下面的答案,我更新了使用。动画和设置宽度,而不是隐藏占位符。动画不是很坚固,但已经足够好了

要排序的项将附加到占位符(如果已设置)。隐藏占位符时,将不保留任何显示样式,而是将项目附加到正文中。如果要保留占位符,但要“隐藏”占位符,请考虑以这种方式设置占位符的样式-将其保留为块元素

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

是的,我只是在调查这件事,并推测你提到的案子是真的。我正在查看“停止”事件中的“重新膨胀”占位符,但您的解决方案可能更干净。使用.animate而不是.css可以保持效果(将原始宽度存储在外部)。