zoukankan      html  css  js  c++  java
  • 导航条——树状导航菜单

    1.概述

        对于一个导航文字很多,并且可以对导航内容进行分类的网站来说,可以将页面中的导航文字以树状图的形式显示,树状图的导航菜单在实际开发应用中非常多。应用它可以方便用户查看。运行本实例,如图1所示,单击节点名称前的加号“+”可以展开指定的节点,单击减号“—”可以收缩子节点。

    2.技术要点

        本实例主要是通过JavaScript控制表格行的<tr>标签的显示或隐藏来实现节点的显示和隐藏。控制<tr>标签的显示和隐藏,主要是在JavaScript中控制<tr>标签对象的display属性来实现。display属性前面已经介绍过,所以此处不再赘述。

    3.具体实现

    (1)利用JavaScript定义一个函数ShowTR(),用于显示或隐藏表格中指定行的内容。关键代码如下:

    (1)利用JavaScript定义一个函数ShowTR(),用于显示或隐藏表格中指定行的内容。关键代码如下:
    function ShowTR(objImg,objTr){
                if(objTr.style.display == ""){   //折叠展开的节点
                      objTr.style.display = "none";
                      objImg.src = "images/jia.gif";    //改变图标
                      objImg.alt = "展开";         //设置工具提示为“展开”
                }else{                                 //展开折叠的节点
                      objTr.style.display = "";
                      objImg.src = "images/jian.gif";  //改变图标
                      objImg.alt = "折叠";         //设置工具提示为“折叠”
                }
    }

    (2)为了实现在默认情况下第1节点为展开状态,可以在该函数后面加入以下代码,用于当第1个节点包括子节点时,设置第1个节点为展开状态,关键代码如下:

    <%
                if(m>1)  //设置第1个节点为展开状态
                      out.println("<script language='javascript'>ShowTR(img1,OpenRep1)  //设置第1个节点为展开状态</script>");
    %>

    (3)从视图V_Type中查询商品的分类信息。关键代码如下:

    <%
                ConnDB conn=new ConnDB();
                ResultSet rs_superType=conn.executeQuery("select ID,superType from V_Type group by ID,superType order by superType desc");
    %>

    (4)循环显示商品分类信息,并查询各分类中所包括的子类名称,如果该分类有相对应的子类,则在节点前显示加号“+”,否则显示减号“—”。注意:需要为每个包含子节点的节点设置超链接,该超链接执行的操作时调用自定义的JavaScript函数showTR(),实现节点的展开与折叠。关键代码如下:

    <table width="100%" height="40"  border="0" cellpadding="0" cellspacing="0">
          <%
                      int ID_superType=0;
                      String superType="";
                      int m=1;
                      while(rs_superType.next()){
                               ID_superType=rs_superType.getInt(1);
                               superType=rs_superType.getString(2);
                            String sql="select * from V_Type where ID="+ID_superType;
                            ResultSet rs_subType=conn.executeQuery(sql);
                            String subType="";
                            int subID=0;
                            //获取记录总数
                            rs_subType.last();
                            int subType_RC=rs_subType.getRow();
                            rs_subType.first();
                       %>
                <tr>
                      <td>
                            <%if(subType_RC<=0){%>
                            <img src="images/jian_null.gif" width="38" height="16" border="0">
                            <%=superType%>
                            <%}else{%>
                            <a href="Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)">
                                  <img src="images/jia.gif" border="0" alt="展开" id="img<%=m%>">
                            </a>
                            <a href="Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)"><%=superType%></a>
                            <%}%>
               </td>
                      <%if (subType_RC>0){%>
                        <tr id="OpenRep<%=m%>" style="display:none;">
                         <td colspan="6">
                            <%do{
                                  subType=rs_subType.getString(3);
                                  subID=rs_subType.getInt(4);
                            %>
                           <table width="100%"  border="0" cellspacing="-2" cellpadding="-2">
                       <tr>
                          <td height="25" align="center">
                                  <table width="90%"  border="0" cellspacing="0" cellpadding="0">
                                <tr onMouseOver="this.style.background='#EEEEEE'" 
                                        onMouseOut="this.style.background=''">
                        <td width="15%">&nbsp;</td>
                        <td width="10%" align="center">
                                        <img src="images/folder.gif" width="16" height="16" border="0"> 
                                  </td>
                        <td width="75%"><a href="#"><%=subType%></a></td>
                           </tr>
                              </table>
                                  </td>
                       </tr>
                     </table>
                             <%     m++;  //注意,该条语句一定不能少
                                  }while(rs_subType.next());
                            %>
                         </td>
                         <%}%>
                        </tr>
                      <%}%>
    </table>
  • 相关阅读:
    sql子游标不共享造成的硬解析
    oracle 11g em配置
    论文阅读 Characterization of Multiple 3D LiDARs for Localization and Mapping using Normal Distributions Transform
    获取操作系统设备信息CPU/内存/系统类型
    c#收取获取outlook中的邮件内容
    WebBrowser中注入js后ajax报错No Transport 或message":"拒绝访问。 ","description":"拒绝访问
    30行js搞定js弹div,支持右下弹出div层,左下弹出div层,右上弹出div层,左上弹出div层,定时关闭
    vscode把本地已存在的项目提交到github
    websocket测试工具的环境搭建与使用
    C语言:大小写字母串相互转换
  • 原文地址:https://www.cnblogs.com/zkn11199/p/5589874.html
Copyright © 2011-2022 走看看