从查询生成的菜单项的交替背景颜色

时间:2015-07-27 14:08:57

标签: jquery html css3 coldfusion-9

我正在努力对动态生成的jquery菜单进行最后润色。该菜单包含根据其登录名分配给员工的报告。一些员工只有两个项目的菜单,而其他员工可以列出20个报告。

我已经看到一些帖子如何根据具有固定数量项目的列表实现CSS3。我的问题是,如果两个员工的菜单中没有相同数量的项目,我怎么能用这个菜单做同样的事情?以下是菜单的当前代码。

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<!---<link rel="stylesheet" href="/resources/demos/style.css" />--->
<script>
$(function() {
$("#menu" ).menu();
});


$(function() {
$(document ).tooltip();

});

function Refresh() {
child.location.reload(true);
}
</script>
<style>
    a{
        font-family:Arial;          
    }

#MainMenu
{
    background-color:"#58B0EB";
}
.ui-menu { width: 270px;
            font: Arial;
            font-size: small;                       
            }

 .ui-tooltip {
    background-image: none;
    background-color: #f7f792; 
    display: inline-block;
    font: Verdana;
    font-size:x-small;  
  }

</style>
</head>
<body>

<cfset User_Id=session.ft_user_id>  
<cfinvoke component="cfc.MainMenu" method="GetMenuHead" returnvariable="GetMenuHeadRet"> 
    <cfinvokeargument name="User_Id" value="#User_Id#"/>
</cfinvoke>

<ul id="menu">
    <li>            
        <a id="MainMenu" href="#">Reports and tools</a>
        <ul>
        <cfloop query="GetMenuHeadRet">
            <cfif GetMenuHeadRet.recordcount gt 0>
            <li style="background-color:#E6E6E6;">
                <cfoutput><a href="##">#Description#</a></cfoutput>
                <cfinvoke component="cfc.MainMenu"  method="GetMenuItem" returnvariable="GetMenuItemRet">
                    <cfinvokeargument name="menukey" value="#ID#"/>
                    <cfinvokeargument name="User_Id" value="#User_Id#"/>
                </cfinvoke>

                <ul>
                    <cfif GetMenuItemRet.recordcount gt 0>
                        <cfloop query="GetMenuItemRet">                                                 
                                <cfoutput><li><a title="#report_Desc#" onClick="Refresh();" href="#URL#?uid="#User_Id# target="_blank">#Report_Name#</a></li></cfoutput>
                        </cfloop>
                    </cfif>
                </ul>
            </li>
            </cfif>
        </cfloop>
      </ul>
    </li>
</ul>
</body>
</html>

2 个答案:

答案 0 :(得分:4)

你可以使用简单的CSS3;只需使用两个类似的规则:

ul li:nth-child(2n) {
    background-color: #AA5555;
}

ul li:nth-child(2n+1) {
    background-color: #5555AA;
}

这是一个(丑陋的:P)例子:http://jsfiddle.net/ryebmym7/1/

答案 1 :(得分:1)

你可以使用

.even{
  background-color:red;
}
.odd{
  background-color:blue;
}

<cfloop query="GetMenuItemRet">                                                 
  <cfoutput>
    <li <cfif GetMenuItemRet.currentRow % 2 eq 0>class="even"<cfelse>class="odd"</cfif>>
       <a title="#report_Desc#" onClick="Refresh();" href="#URL#?uid="#User_Id# target="_blank">#Report_Name#</a>
    </li>
  </cfoutput>
</cfloop>