次の単純なものがあるとします<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>
サブメニューが展開されると、ページが更新された後でも明示的に折りたたまれるまで、展開されたままにする必要があります。
同様に、後でサブメニューが折りたたまれている場合は、ページがリロード/リフレッシュされた後でも、明示的に展開されるまで折りたたまれたままにする必要があります。これは可能ですか?
ちなみに、次のスクリプトは<p:panelMenu>
デフォルトで a を展開します ( 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>
が折りたたまれている場合に展開します。
var isMenuExpanded = jQuery('div.ui-panelmenu-content.ui-widget-content.ui-helper-hidden').is(':visible');
if(!isMenuExpanded)
{
jQuery('.ui-panelmenu-panel a').first().click();
}