【问题标题】:change style of menuItem when clicked in IceFaces menuBar在 IceFaces menuBar 中单击时更改 menuItem 的样式
【发布时间】:2015-12-19 01:24:34
【问题描述】:

我的页面有一个包含一些 menuItems 的 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" />

【问题讨论】:

    标签: css jsf icefaces


    【解决方案1】:

    根据 URL 突出显示活动菜单:

    辅助控制器片段:

        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")
    }
    
    猜你喜欢
    • 2012-01-19
    • 2012-12-10
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2021-08-26
    • 1970-01-01
    相关资源
    最近更新 更多