我的页面有一个menuBar,其中包含一些menuItems。该菜单项在鼠标悬停时突出显示,但是我需要像在tabView中一样单击它时将其突出显示。

 <ace:menuBar id="menuBarHeader" autoSubmenuDisplay="true"
            styleClass="menue">
            <ace:menuItem id="menuItemStart" value="Start"
                icon="ui-icon ui-icon-home" url="/layouts/welcome.xhtml"
                styleClass="menu" />

最佳答案

根据网址突出显示活动菜单:

助手控制器的片段:

    public String getActiveMenu() {
        final String url = FacesContext.getCurrentInstance().getExternalContext().getRequestServletPath();
        String activeMenu = url.replaceAll("/screens/([^/]+)/.*", "$1");
        // exceptions (not standard urls)
        if (isHomeMenuActive(activeMenu)) {
            activeMenu = "home";
...


xhtml:

  <ace:menuItem id="menuItemStart" value="Start"
                icon="ui-icon ui-icon-home" url="/layouts/welcome.xhtml"
                styleClass="menu #{menuHighlightController.activeMenu eq 'home' ? 'menuActiveItem ' : ''}" />


高亮显示菜单,其中包含使用锚点伪类:

.menuItem{
a:link{
  background-color:blue;
}
a:visited{
  background-color:purple;
}
a:hover{
  background--color:orange;
}
a:focus{
  background-color:green;
}
a:active{
  background-color:red;
}
}


使用Java脚本突出显示:

xhtml:

 <ace:menuItem id="menuItemStart" value="Start" onclick="changeColor();"
                    icon="ui-icon ui-icon-home" url="/layouts/welcome.xhtml"
                    styleClass="menu" />


JS:

function changeColor(){
  $(this).toggleClass("active-menu")
}

关于css - 在IceFaces menuBar中单击时更改menuItem的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32710562/

10-10 17:34