问题描述
假设我有以下简单的<p:panelMenu>
.
<p:panelMenu style="width:200px">
<p:submenu label="Contents">
<p:menuitem value="MenuItem1" url="SomeURL" icon="ui-icon-disk" />
<p:menuitem value="MenuItem2" url="SomeURL" icon="ui-icon-disk" />
<p:menuitem value="MenuItem3" url="SomeURL" icon="ui-icon-disk" />
</p:submenu>
<p:separator />
<p:submenu label="Users">
<p:menuitem value="MenuItem1" url="SomeURL" icon="ui-icon-disk" />
<p:menuitem value="MenuItem2" url="SomeURL" icon="ui-icon-disk" />
<p:menuitem value="MenuItem3" url="SomeURL" icon="ui-icon-disk" />
</p:submenu>
</p:panelMenu>
子菜单一旦展开,就应保持展开状态,直到刷新页面后将其明确折叠为止.
Once a sub menu is expanded should remain expanded until it is explicitly collapsed even after a page refresh.
类似地,在某个时间之后,如果子菜单已折叠,则即使在重新加载/刷新页面后,子菜单也应保持折叠状态,直到显式展开为止.这可能吗?
Similarly, sometime later, if the sub menu is collapsed should remain collapsed until it is explicitly expanded even after the page reloaded/refreshed. Is this possible?
顺便说一下,以下脚本默认情况下扩展了<p:panelMenu>
(全部为<p:submenu>
).
By the way, the following script expands a <p:panelMenu>
by default (all <p:submenu>
).
$(document).ready(function(){
$(".ui-panelmenu-content").css("display","block");
$(".ui-panelmenu-header").addClass("ui-state-active");
$(".ui-icon-triangle-1-e").removeClass("ui-icon-triangle-1-e").addClass("ui-icon-triangle-1-s");
});
如果折叠,以下脚本将展开<p:panelMenu>
的第一个子菜单.
And the following script expands the first sub menu of <p:panelMenu>
, if it is collapsed.
var isMenuExpanded = jQuery('div.ui-panelmenu-content.ui-widget-content.ui-helper-hidden').is(':visible');
if(!isMenuExpanded)
{
jQuery('.ui-panelmenu-panel a').first().click();
}
推荐答案
<p:panelMenu stateful="false"></p:panelMenu>
stateful
属性默认为true
.如果要手动控制折叠/展开状态,则应将其设置为false
,然后可以在子菜单元素上使用expanded
属性.
stateful
attruibute default is true
. If you want to control collapsed/expanded states by hand, you should set it false
, then you can use expanded
attribute on submenu elements.
这篇关于如何保持/保持< p:panelMenu>的折叠和展开状态即使刷新页面后?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!