我认为问题在于关闭意味着关闭并消失,因此您不应该仍然能够看到框架。如果我理解您想要正确执行的操作,您可以通过使用自定义代码覆盖关闭操作来伪造它。
这涉及覆盖 onclose_start 回调,设置大小,然后返回 false 以防止窗格关闭。请注意,这意味着就系统而言,窗格并没有真正关闭。
下面的代码完成了所有这些,它在西窗格状态对象上创建了一个新变量来存储旧大小。它在创建函数的开头定义了它(尽管如果没有定义,系统不会抱怨)。您还可以使用全局变量或其他一些存储。您可以使该功能更通用,不仅适用于西方等。
我不确定您希望系统如何工作,您可能需要摆弄 if 条件。
$(document).ready(function () {
var mylayout = $("body").layout(
{west: {
minSize: 40,
onclose_start: function() {
var closed_size = 40;
var current_size = mylayout.state.west.size;
if (current_size <= closed_size) {
mylayout.sizePane('west', mylayout.state.west.old_size);
} else {
mylayout.sizePane('west', closed_size);
mylayout.state.west.old_size = current_size;
}
return false;
}}
});
mylayout.state.west.old_size = mylayout.state.west.size;
});