Javascript jQuery UI可排序还原:还原到左上角
如果您以下面的示例为例:拖动其中一个顶部portlet并放到黑色区域(表示菜单)的顶部,它将在捕捉到位之前恢复到左上角。我假设这与我的动画方法(显示和隐藏不可见的占位符)有关,就像我按预期移除.show和.hide还原函数一样 .可排序呼叫: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
$( ".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可以保持效果(将原始宽度存储在外部)。