帮我解释一下好吗,最好每句都注解一下 代码要结合html一起看估计是个动态菜单 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 源文件如下:前一段是在menu.js中,你能把前面属性的含义给我说一下吗?<%@ page contentType="text/html;charset=gb2312" language="java" %><%@page import="hzdq.fdjc.DbConn.*"%><%@page import="java.sql.*" %><%@page import="java.util.*" %><jsp:useBean id="user" scope="page" class="hzdq.fdjc.Admin.user" /><html><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><script language="JavaScript" src="../include/menu.js"></script><link rel="stylesheet" href="../include/ydl.css" type="text/css"></head><body background="../images/newweb/nei_left_menu_bg.gif"><%String num=request.getParameter("num"); if(num==null||num.equals("null")) num="1";int v_num=Integer.parseInt(num); //数据库连接 DBConnectionManager Conn=DBConnectionManager.getInstance(); Connection con=Conn.getConnection(); user.setConnection(con); String userid=(String)session.getAttribute("userid"); String roleid=(String)session.getAttribute("roleid");%><table border="0" cellspacing="0" cellpadding="0" > <tbody> <tr> <td background="../images/newweb/nei_left_menu_bg.gif" width="183"> <table border="0" cellspacing="0" cellpadding="0" > <tbody> <tr> <td> <div id="Layer1" style="position:absolute; width:183px; height:150px; z-index:1; left: 0px"> <% int count=0; Vector vData=new Vector(); String[] sData=new String[4]; vData=(Vector)user.getmodule();;//得到模块信息 for(int i=0;i<vData.size();i++) { sData=(String[])vData.get(i); count++; Vector vData1=new Vector(); String[] sData1=new String[8]; vData1=(Vector)user.getmodule_sub(sData[0],roleid,userid,"0"); %> <table cellspacing=0 cellpadding=0 width=183 border="0" background="../images/newweb/nei_menu_6.gif"> <tbody> <tr style="CURSOR: hand"> <td valign="bottom" height=20 class=menu_title id=menuTitle<%=count%> onClick=menuChange(menu<%=count%>,120,menuTitle<%=count%>); background="../images/newweb/nei_left_menu<%if(i==0) out.print("1"); else out.print("8");%>.gif" ><%out.print(" "+sData[2]);%> </tr> <tr> <td width="183"> <% if (i==0) { %> <div class=sec_menu id=menu<%=count%> style="FILTER: alpha(Opacity=100); OVERFLOW: hidden; WIDTH: 183px; HEIGHT: <%=(vData1.size()+1)*20%>px"> <% } else { %> <div class=sec_menu id=menu<%=count%> style="DISPLAY: none; FILTER: alpha(Opacity=0); WIDTH: 183px; HEIGHT: 0px"> <% } %> <% if (count==1) { %> <script language=javascript> var whichOpen=menuTitle1; var whichContinue=""; </script> <% } %> <%for(int j=0;j<vData1.size();j++) { sData1=(String[])vData1.get(j); if(sData1[7]==null) sData1[7]=","; if(sData1[5]==null) sData1[5]=",";%> <li class="nei_zimenu"> <%if(sData1[7].indexOf(","+roleid+",")!=-1||sData1[5].indexOf(","+userid+",")!=-1||"0".equals(roleid)) {%> <a href="doc_more.jsp?sub_id=<%=sData1[0]%>&sub_name=<%=sData1[4]%>&name=<%=sData1[2]%>" target="main2" class="lan"><%=sData1[4]%></a> <%} else {out.print(sData1[4]);}%> </li><%}%></ul></td></tr> </td> </tbody> </table> <%}%> </div> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table></body></html><%Conn.freeConnection(con);%> /***ÏÔʾÏÂÀ­²Ëµ¥*@param obj ÏÂÀ²²Ëµ¥*@param maxh ×î´ó¸ß¶È*@param obj2 Ö÷²Ëµ¥*/function menuShow(obj,maxh,obj2) { if(obj.style.pixelHeight<maxh) { obj.style.pixelHeight+=maxh/20; //ÏÂÀ­²Ëµ¥Öð½¥À­¿ª obj.filters.alpha.opacity+=5; //ÏÂÀ­²Ëµ¥Öð½¥±äÁÁ obj2.background="../images/newweb/nei_left_menu1.gif"; //Çл»Ö÷²Ëµ¥µÄ±³¾°Í¼Æ¬ if(obj.style.pixelHeight==maxh/10) obj.style.display='block'; //ÉèÖÃÏÂÀ­²Ëµ¥ÎªÏÔʾ״̬ myObj=obj; myMaxh=maxh; myObj2=obj2; setTimeout('menuShow(myObj,myMaxh,myObj2)','5'); //ÿ¸ô5ºÁÃëÖ´ÐÐÒ»´ÎmenuShowº¯Êý£¬ÖÆÔìÏÂÀ­²Ëµ¥½¥±äµÄЧ¹û }}/***Òþ²ØÏÂÀ­²Ëµ¥*@param obj ÏÂÀ²²Ëµ¥*@param maxh ×î´ó¸ß¶È*@param obj2 Ö÷²Ëµ¥*/function menuHide(obj,maxh,obj2){ if(obj.style.pixelHeight>0) { if(obj.style.pixelHeight==maxh/20) obj.style.display='none'; //ÉèÖÃÏÂÀ­²Ëµ¥Îª²»ÏÔʾ״̬ obj.style.pixelHeight-=maxh/20; //ÏÂÀ­²Ëµ¥Öð½¥…§Â£ obj.filters.alpha.opacity-=5; //ÏÂÀ­²Ëµ¥Ö𽥱䰵 obj2.background="../images/newweb/nei_left_menu8.gif"; //Çл»Ö÷²Ëµ¥µÄ±³¾°Í¼Æ¬ myObj=obj; myMaxh=maxh myObj2=obj2; setTimeout('menuHide(myObj,myMaxh,myObj2)','5'); //ÿ¸ô5ºÁÃëÖ´ÐÐÒ»´ÎmenuShowº¯Êý£¬ÖÆÔìÏÂÀ­²Ëµ¥½¥±äµÄЧ¹û } else if(whichContinue) whichContinue.click();}function menuChange(obj,maxh,obj2){ if(obj.style.pixelHeight) { menuHide(obj,maxh,obj2); whichOpen=''; whichcontinue=''; } else if(whichOpen) { whichContinue=obj2; whichOpen.click(); } else { menuShow(obj,maxh,obj2); whichOpen=obj2; whichContinue=''; }} /***显示下拉菜单*@param obj 下拉菜单*@param maxh 最大高度*@param obj2 主菜单*/function menuShow(obj,maxh,obj2) { if(obj.style.pixelHeight<maxh) { obj.style.pixelHeight+=maxh/20; //下拉菜单逐渐弹出 obj.filters.alpha.opacity+=5; //下拉菜单逐渐变亮 obj2.background="../images/newweb/nei_left_menu1.gif"; //切换主菜单的背景图片 if(obj.style.pixelHeight==maxh/10) obj.style.display='block'; //设置下拉菜单为可显示状态 myObj=obj; myMaxh=maxh; myObj2=obj2; setTimeout('menuShow(myObj,myMaxh,myObj2)','5'); //每隔5毫秒执行一次menuShow函数,制造渐变效果 }}/***隐藏下拉菜单*@param obj 下拉菜单*@param maxh 最大高度*@param obj2 主菜单*/function menuHide(obj,maxh,obj2){ if(obj.style.pixelHeight>0) { if(obj.style.pixelHeight==maxh/20) obj.style.display='none'; //设置下拉菜单为不可显示状态 obj.style.pixelHeight-=maxh/20; //下拉菜单逐渐収拢 obj.filters.alpha.opacity-=5; //下拉菜单逐渐变暗 obj2.background="../images/newweb/nei_left_menu8.gif"; //切换主菜单背景图片 myObj=obj; myMaxh=maxh myObj2=obj2; setTimeout('menuHide(myObj,myMaxh,myObj2)','5'); //每隔5毫秒执行一次menuShow函数,制造渐变效果 } else if(whichContinue) whichContinue.click();}function menuChange(obj,maxh,obj2){ if(obj.style.pixelHeight) { menuHide(obj,maxh,obj2); whichOpen=''; whichcontinue=''; } else if(whichOpen) { whichContinue=obj2; whichOpen.click(); } else { menuShow(obj,maxh,obj2); whichOpen=obj2; whichContinue=''; }} 如何用javascript抓取数据 动态生成查询条件表单 这个JS应该怎么改,求助 请帮我看看邮件验证程序不行 新手关于.js文件与html页分离的问题 请问如何在一个HTML页面中用JS调用另一个HTML文件? 请问怎样用javascript遍历TreeView 求助,一个字符串操作问题 网页“另存为”如何屏蔽?再线等。。。 如何实现在表单提交后,仍然保持下拉菜单项上一次的状态,在线等,急 请问怎样写才能使按当选择修改分组时GROUPNAME的值为select的第一选项值. 如何得到一个网页中所有有命名规则ID的和
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<%@page import="hzdq.fdjc.DbConn.*"%>
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>
<jsp:useBean id="user" scope="page" class="hzdq.fdjc.Admin.user" />
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="JavaScript" src="../include/menu.js">
</script>
<link rel="stylesheet" href="../include/ydl.css" type="text/css">
</head>
<body background="../images/newweb/nei_left_menu_bg.gif">
<%
String num=request.getParameter("num");
if(num==null||num.equals("null"))
num="1";
int v_num=Integer.parseInt(num);
//数据库连接
DBConnectionManager Conn=DBConnectionManager.getInstance();
Connection con=Conn.getConnection();
user.setConnection(con);
String userid=(String)session.getAttribute("userid");
String roleid=(String)session.getAttribute("roleid");
%>
<table border="0" cellspacing="0" cellpadding="0" >
<tbody>
<tr>
<td background="../images/newweb/nei_left_menu_bg.gif" width="183">
<table border="0" cellspacing="0" cellpadding="0" >
<tbody>
<tr>
<td>
<div id="Layer1" style="position:absolute; width:183px; height:150px; z-index:1; left: 0px">
<%
int count=0;
Vector vData=new Vector();
String[] sData=new String[4];
vData=(Vector)user.getmodule();;//得到模块信息
for(int i=0;i<vData.size();i++)
{
sData=(String[])vData.get(i);
count++;
Vector vData1=new Vector();
String[] sData1=new String[8];
vData1=(Vector)user.getmodule_sub(sData[0],roleid,userid,"0");
%>
<table cellspacing=0 cellpadding=0 width=183 border="0" background="../images/newweb/nei_menu_6.gif">
<tbody>
<tr style="CURSOR: hand">
<td valign="bottom" height=20 class=menu_title id=menuTitle<%=count%> onClick=menuChange(menu<%=count%>,120,menuTitle<%=count%>); background="../images/newweb/nei_left_menu<%if(i==0) out.print("1"); else out.print("8");%>.gif" ><%out.print(" "+sData[2]);%>
</tr>
<tr>
<td width="183">
<%
if (i==0)
{
%>
<div class=sec_menu id=menu<%=count%> style="FILTER: alpha(Opacity=100); OVERFLOW: hidden; WIDTH: 183px; HEIGHT: <%=(vData1.size()+1)*20%>px">
<%
}
else
{
%>
<div class=sec_menu id=menu<%=count%> style="DISPLAY: none; FILTER: alpha(Opacity=0); WIDTH: 183px; HEIGHT: 0px">
<%
}
%>
<%
if (count==1)
{
%>
<script language=javascript>
var whichOpen=menuTitle1;
var whichContinue="";
</script>
<%
}
%>
<%for(int j=0;j<vData1.size();j++)
{
sData1=(String[])vData1.get(j);
if(sData1[7]==null)
sData1[7]=",";
if(sData1[5]==null)
sData1[5]=",";%>
<li class="nei_zimenu">
<%if(sData1[7].indexOf(","+roleid+",")!=-1||sData1[5].indexOf(","+userid+",")!=-1||"0".equals(roleid))
{%>
<a href="doc_more.jsp?sub_id=<%=sData1[0]%>&sub_name=<%=sData1[4]%>&name=<%=sData1[2]%>" target="main2" class="lan"><%=sData1[4]%></a>
<%}
else
{out.print(sData1[4]);}%>
</li><%}%></ul></td></tr>
</td>
</tbody>
</table>
<%}%>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
<%Conn.freeConnection(con);%>
*ÏÔʾÏÂÀ­²Ëµ¥
*@param obj ÏÂÀ²²Ëµ¥
*@param maxh ×î´ó¸ß¶È
*@param obj2 Ö÷²Ëµ¥
*/
function menuShow(obj,maxh,obj2)
{
if(obj.style.pixelHeight<maxh)
{
obj.style.pixelHeight+=maxh/20; //ÏÂÀ­²Ëµ¥Öð½¥À­¿ª
obj.filters.alpha.opacity+=5; //ÏÂÀ­²Ëµ¥Öð½¥±äÁÁ
obj2.background="../images/newweb/nei_left_menu1.gif"; //Çл»Ö÷²Ëµ¥µÄ±³¾°Í¼Æ¬
if(obj.style.pixelHeight==maxh/10)
obj.style.display='block'; //ÉèÖÃÏÂÀ­²Ëµ¥ÎªÏÔʾ״̬
myObj=obj;
myMaxh=maxh;
myObj2=obj2;
setTimeout('menuShow(myObj,myMaxh,myObj2)','5'); //ÿ¸ô5ºÁÃëÖ´ÐÐÒ»´ÎmenuShowº¯Êý£¬ÖÆÔìÏÂÀ­²Ëµ¥½¥±äµÄЧ¹û
}
}/**
*Òþ²ØÏÂÀ­²Ëµ¥
*@param obj ÏÂÀ²²Ëµ¥
*@param maxh ×î´ó¸ß¶È
*@param obj2 Ö÷²Ëµ¥
*/
function menuHide(obj,maxh,obj2)
{
if(obj.style.pixelHeight>0)
{
if(obj.style.pixelHeight==maxh/20)
obj.style.display='none'; //ÉèÖÃÏÂÀ­²Ëµ¥Îª²»ÏÔʾ״̬
obj.style.pixelHeight-=maxh/20; //ÏÂÀ­²Ëµ¥Öð½¥…§Â£
obj.filters.alpha.opacity-=5; //ÏÂÀ­²Ëµ¥Ö𽥱䰵
obj2.background="../images/newweb/nei_left_menu8.gif"; //Çл»Ö÷²Ëµ¥µÄ±³¾°Í¼Æ¬
myObj=obj;
myMaxh=maxh
myObj2=obj2;
setTimeout('menuHide(myObj,myMaxh,myObj2)','5'); //ÿ¸ô5ºÁÃëÖ´ÐÐÒ»´ÎmenuShowº¯Êý£¬ÖÆÔìÏÂÀ­²Ëµ¥½¥±äµÄЧ¹û
}
else
if(whichContinue)
whichContinue.click();
}function menuChange(obj,maxh,obj2)
{
if(obj.style.pixelHeight)
{
menuHide(obj,maxh,obj2);
whichOpen='';
whichcontinue='';
}
else
if(whichOpen)
{
whichContinue=obj2;
whichOpen.click();
}
else
{
menuShow(obj,maxh,obj2);
whichOpen=obj2;
whichContinue='';
}
}
*显示下拉菜单
*@param obj 下拉菜单
*@param maxh 最大高度
*@param obj2 主菜单
*/
function menuShow(obj,maxh,obj2)
{
if(obj.style.pixelHeight<maxh)
{
obj.style.pixelHeight+=maxh/20; //下拉菜单逐渐弹出
obj.filters.alpha.opacity+=5; //下拉菜单逐渐变亮
obj2.background="../images/newweb/nei_left_menu1.gif"; //切换主菜单的背景图片
if(obj.style.pixelHeight==maxh/10)
obj.style.display='block'; //设置下拉菜单为可显示状态
myObj=obj;
myMaxh=maxh;
myObj2=obj2;
setTimeout('menuShow(myObj,myMaxh,myObj2)','5'); //每隔5毫秒执行一次menuShow函数,制造渐变效果
}
}/**
*隐藏下拉菜单
*@param obj 下拉菜单
*@param maxh 最大高度
*@param obj2 主菜单
*/
function menuHide(obj,maxh,obj2)
{
if(obj.style.pixelHeight>0)
{
if(obj.style.pixelHeight==maxh/20)
obj.style.display='none'; //设置下拉菜单为不可显示状态
obj.style.pixelHeight-=maxh/20; //下拉菜单逐渐収拢
obj.filters.alpha.opacity-=5; //下拉菜单逐渐变暗
obj2.background="../images/newweb/nei_left_menu8.gif"; //切换主菜单背景图片
myObj=obj;
myMaxh=maxh
myObj2=obj2;
setTimeout('menuHide(myObj,myMaxh,myObj2)','5'); //每隔5毫秒执行一次menuShow函数,制造渐变效果
}
else
if(whichContinue)
whichContinue.click();
}function menuChange(obj,maxh,obj2)
{
if(obj.style.pixelHeight)
{
menuHide(obj,maxh,obj2);
whichOpen='';
whichcontinue='';
}
else
if(whichOpen)
{
whichContinue=obj2;
whichOpen.click();
}
else
{
menuShow(obj,maxh,obj2);
whichOpen=obj2;
whichContinue='';
}
}