`
everlxq
  • 浏览: 108655 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

二级菜单的拉伸合并,及菜单的上移

 
阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isELIgnored="false"%>
<%@page import="vo.Location" %>
<%@taglib prefix="s" uri="/struts-tags"  %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <title>菜单树</title>
  <SCRIPT type="text/javascript" src="js/jquery.js"></SCRIPT>
<link href="js/leftmenu.css" rel="stylesheet" type="text/css" />
  <SCRIPT type="text/javascript">
    $(function(){

  })
  function getEl(id){
  var firstli = $("#_menu2 li:first");
  var cruli=$("#a"+id).parent().parent();
  var next = cruli.next(),
                    parent = cruli.parent();
                firstli.after(cruli);
                if(next.length === 0){
                    parent.append(firstli);
                }else{
                    next.before(firstli);
                }
                
                var dropdown=$("#a"+id).next();
                $(".adropdown").not(dropdown).slideUp('slow');
                dropdown.slideToggle('slow');
                
  }
  
  </SCRIPT>

  </head>
  <body>
  <table>
  <tr><td style="width: 300px;height: 720px;overflow-y:scroll;vertical-align: top;">
  <h5>菜单树</h5>
  <ul id="_menu2">
						<%
							List<Location> list = (List<Location>) request
									.getAttribute("locations");
							Location temp = null;
							Location temp1 = null;
							for (int i = 0; i < list.size(); i++) {
								Location l = list.get(i);
								Location p = l.getParent();
								if (p != null && !(p.equals(temp))) {
									if (i > 0) {
						%>
					</ul>
					</li>
					</ul>
					</li>
					<%
						}
					%>
					<li style="list-style: none;">
						<ul>
							<li id="a<%=p.getId()%>"
								style="list-style: none; background-color: #abc; width: 200px; height: 20px; border: 1px solid #edd;"
								onclick="getEl(<%=p.getId()%>)">
								<%
									if (null != p) {
								%>
								<%=p.getName()%>
								<%
									}
								%>
							</li>
							<li style="list-style: none; display: none;" class="adropdown">
								<ul>
									<%
										}
									%>
									<li
										style="list-style: none; background-color: #bbb; width: 200px; height: 20px; border: 1px solid #ded;">
										<%=l.getName()%>
									</li>
									<%
										if (i == list.size() - 1) {
									%>
								</ul>
							</li>
						</ul>
					</li>
					<%
						}
					%>
					<%
						temp = p;
							temp1 = l;
						}
					%>
					</ul>
  </td>
 </tr>
  </table>
  </body>
</html>

基本结构

<ul>

for(

<li><ul>

<li>一级菜单

<li><ul>

<li>二级菜单


重要的地方

 <% if (i > 0) { %>
	</ul>
	</li>
	</ul>
	</li>
	<%}%>

<% if (i == list.size() - 1) {  %>
	</ul>
	</li>
	</ul>
	</li>
		<%
		}
		%>

遍历的时候标签的闭合

点击菜单事件的方法

function getEl(id){
  var firstli = $("#_menu2 li:first");
  var cruli=$("#a"+id).parent().parent();
  var next = cruli.next(),parent = cruli.parent();
                firstli.after(cruli);
                if(next.length === 0){
                    parent.append(firstli);
                }else{
                    next.before(firstli);
                }
                var dropdown=$("#a"+id).next();
                $(".adropdown").not(dropdown).slideUp('slow');
                dropdown.slideToggle('slow');
  }

都是知识点
分享到:
评论

相关推荐

    2021-2022计算机二级等级考试试题及答案No.3947.docx

    当设置为True时,图像框会自动拉伸或压缩图像以填充图像框的整个区域,确保图像完全显示在图像框内。 ### 7. 电脑病毒的危害 题目中指出电脑病毒的主要危害是干扰电脑的正常运行(选项B)。电脑病毒确实不会直接...

    c# .net 400实例

    动态合并菜单是指根据当前的应用环境或用户权限,动态显示不同的菜单项。这在企业级应用中非常常见,确保每个用户仅能看到与其角色相关的功能,从而简化界面并提高安全性。 - **实例003:像开始菜单一样的漂亮菜单...

    C#.net_经典编程例子400个,个个经典

    - **实例说明**:此实例展示了如何根据用户权限或当前上下文动态地合并或显示不同的菜单项。这对于创建灵活且易于维护的用户界面非常有用。 - **实例003:像开始菜单一样漂亮的菜单** - **实例说明**:通过模仿...

    2021-2022计算机二级等级考试试题及答案No.11004.docx

    - **解释**: SQL查询语句中,UNION用于合并两个或多个SELECT语句的结果集,但所有SELECT语句必须具有相同数量的列,并且相应列的类型也必须兼容。选项D正确地实现了这一要求。 ### 22. Windows 98 资源管理器 - **...

    ptc公司的高级曲面扩展.doc

    需要注意的是,在合并特征中,遮蔽第一个面组会遮蔽整个合并,而仅遮蔽第二个面组则不会影响整个合并。另外,可以为面组分配颜色,从自定义颜色库中选择,甚至为曲面的边指定颜色。模型的整体着色可以通过“视图”&gt;...

    C#经典编程例子500

    #### 二、菜单设计 菜单是用户与应用程序交互的重要方式之一,合理的菜单设计能够极大地提升用户的使用体验。以下是一些经典的菜单设计示例: 1. **实例001:带历史信息的菜单** - **实例说明**:在开发图纸管理...

    CATIA 实体设计教程

    - **Pad (拉伸或突台)**: 通过拉伸二维草图来创建三维实体特征。 - **拉伸范围定义方式**: - **拉伸方向**: 默认为沿轮廓线的法线方向,也可自定义。 - **厚度**: 调整拉伸特征的厚度。 - **反转方向**: 改变...

    PRO-E WILDFIRE 4.0曲面教程

    - **拉伸**:在垂直于草绘平面的方向上,通过将草绘截面拉伸到指定深度来创建面组。新曲面可以拉伸到与草绘平面平行的平曲面、面组或基准平面。 - **旋转**:通过绕截面中草绘出的第一条中心线,将草绘截面旋转...

    C#经典特效代码470例(PDF已经整理)

    - **实例说明**:在开发图纸管理软件时,要求在菜单上记录用户最近打开的档案或图纸,以便于下次快速访问。例如,当用户点击“文件”菜单下的“打开文件”选项时,可以选择之前打开过的文件。下次运行软件时,这些...

    C#程序开发范例宝典.pdf(不完整)

    - **实例002**:菜单动态合并 - 实现不同菜单项之间的动态组合,例如根据用户权限展示不同的菜单选项。 - **实例003**:像开始菜单一样漂亮的菜单 - 模仿Windows系统的开始菜单样式,设计美观的菜单界面。 - **实例...

    Designbuilder界面翻译2

    Go&View菜单提供了模型视图操作的功能,如进入上一级模型、后退、前进等。这些功能对于在不同层级的模型视图中进行导航非常有用。同时,它也提供了进入各种模拟界面的功能,如全年能耗模拟界面、冷负荷计算、热负荷...

    AutoCAD 2000 三维造型高级培训教程(dwg)

    AutoCAD 2000是Autodesk公司推出的经典CAD软件版本,它在二维绘图的基础上,增加了强大的三维建模功能。本教程将详细讲解如何利用AutoCAD 2000的工具和命令创建复杂的三维模型,包括基础的建模概念、方法和技术。 ...

    C#400例子.pdf

    **实例002 菜单动态合并** - **实例说明**:有时候,根据用户的权限或操作环境的不同,菜单项可能需要动态变化。例如,管理员可以看到更多高级选项,而普通用户只能看到基础选项。 - **技术要点**: - 在创建菜单...

    怎么画cad里面的立体图.doc

    2. **拉伸成三维形状**:通过“绘图”菜单选择“建模”,然后选择“拉伸”命令,设置所需的高度,回车确认,二维形状将被拉伸为三维实体,例如,矩形会被拉伸为长方体。 3. **转换视角**:为了更好地观察和编辑三维...

    AutoCAD2010标准教程(第4章.pptx

    移动命令(move或m)允许你将对象从一个位置平移到另一个位置,对齐命令(align)可以调整对象相对于其他对象的位置,拉伸命令(stretch或s)可以改变对象的大小或形状,而拉长命令(lengthen)则可以改变线段的长度...

    建筑制图CAD试卷及答案.doc

    7. 当合并线段时,源对象的属性(如颜色、线型等)将继承到合并后的线段上。 8. 面域(Region)是AutoCAD中的一种特殊二维对象,可以进行布尔运算,如并集、差集和交集,以组合或减去图形区域。 9. 创建图案填充...

Global site tag (gtag.js) - Google Analytics