我看了一下,你的程序只在一个table内扫描各行,而你的主菜单和子菜单不在同一个table里!

解决方案 »

  1.   

    你的include/Font.css文件的源代码呢?主要是看那个文件怎么写的.
      

  2.   

    <html> 
    <head> 
    <meta http-equiv="Content-Language" content="zh-cn"> 
    <title>菜单</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <link rel="stylesheet" href="include/Font.css"> 
    </head> 
    <script language="JavaScript"> 
    <!-- 
    function setColor() 

    window.event.cancelBubble=true; 
    objSRC=window.event.srcElement;  for(i=0;i<table1.children(0).children.length;i++) 

    table1.children(0).children(i).bgColor="#637fb9"; 
    objFont=table1.children(0).children(i).children(1); 
    while(objFont.tagName!="FONT") 

    objFont=objFont.children(0); 

    objFont.color=""; 


    for(i=0;i<table2.children(0).children.length;i++) 

    table2.children(0).children(i).bgColor="#637fb9"; 
    objFont=table2.children(0).children(i).children(1); 
    while(objFont.tagName!="FONT") 

    objFont=objFont.children(0); 

    objFont.color=""; 

    objSRC.bgColor="#637fb9"; 
    window.event.srcElement.color="#FFFF66"; 

    --> 
    </script> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    var bV=parseInt(navigator.appVersion); 
    var NS4=(document.layers) ? true : false; 
    var IE4=((document.all)&&(bV>=4))?true:false; 
    var ver4 = (NS4 || IE4) ? true : false; function expandIt(){return} 
    function expandAll(){return} 
    function nomsg(){self.status="";} if(ver4){ 
    isExpanded = false; function getIndex(el) { 
    ind = null; 
    for (i=0; i<document.layers.length; i++) { 
    whichEl = document.layers[i]; 
    if (whichEl.id == el) { 
    ind = i; 
    break; 


    return ind; 

    function arrange() { 
    nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height; 
    for (i=firstInd+1; i<document.layers.length; i++) { 
    whichEl = document.layers[i]; 
    if (whichEl.visibility != "hide") { 
    whichEl.pageY = nextY; 
    nextY += whichEl.document.height; 



    function initIt(){ 
    if (NS4) { 
    for (i=0; i<document.layers.length; i++) { 
    whichEl = document.layers[i]; 
    if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide"; 

    arrange(); 

    else { 
    tempColl = document.all.tags("DIV"); 
    for (i=0; i<tempColl.length; i++) { 
    if (tempColl(i).className == "child") tempColl(i).style.display = "none"; 



    function expandIt(el) { 
    if (!ver4) return; 
    if (IE4) {expandIE(el)} else {expandNS(el)} 
    } function expandIE(el) { 
    whichEl = eval(el + "Child"); 
    whichIm = event.srcElement; if (whichEl.style.display == "none") { 
    whichEl.style.display = "block"; 
    whichIm.src = "images/midminus.gif"; 

    else { 
    whichEl.style.display = "none"; 
    whichIm.src = "images/midplus.gif"; 


    function expandNS(el) { 
    whichEl = eval("document." + el + "Child"); 
    whichIm = eval("document." + el + "Parent.document.images['imEx']"); 
    if (whichEl.visibility == "hide") { 
    whichEl.visibility = "show"; 
    whichIm.src = "images/midminus.gif"; 

    else { 
    whichEl.visibility = "hide"; 
    whichIm.src = "images/midplus.gif"; 

    arrange(); 
    } function showAll() { 
    for (i=firstInd; i<document.layers.length; i++) { 
    whichEl = document.layers[i]; 
    whichEl.visibility = "show"; 

    } } 
    //--> 
    </SCRIPT> 
    <body leftmargin="0" topmargin="0" bgcolor="#FFFFFF"> 
    <table border="0" cellspacing="0" cellpadding="0" width="155" height="600"> 
    <tr> 
    <td height="655" width="154" valign="top" bgcolor="#637fb9"> 
    <div align="center"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr valign="top"> 
    <td height="46"> 
    <div align="center"><img src="images/sys01.gif" width="154" height="83"></div> 
    </td> 
    </tr> 
    </table> 
    <br> 
    <br>  <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="13%"> 
    </td> 
    <td width="87%" valign="top"><img src="images/line.gif" width="16" height="16"></td> 
    </tr> 
    </table>  <table width="100%" border="0" cellspacing="0" cellpadding="0" id="table1"> 
    <tr bgcolor="#637fb9"> 
    <td height="30" width="36" bgcolor="#637fb9"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" height="30"> 
    <tr> 
    <td width="37"> 
    </td> 
    <td width="10" background="images/line.gif" valign="top"><img src="images/lastblk.gif" width="16" height="16"></td> 
    </tr> 
    </table> 
    </td> 
    <td height="30" width="118" valign="top"> <a href="syse/syse01.htm" target="mainFrame" onClick="setColor()">
    <font color="#FFFF66">人事变动</font></a>
    </td> 
    </tr>  <tr bgcolor="#637fb9"> 
    <td width="36" bgcolor="#637fb9"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" height="30"> 
    <tr>  
    <td width="37"> 
    </td> 
    <td width="10" background="images/line.gif" valign="top"><img src="images/lastblk.gif" width="16" height="16"></td> 
    </tr> 
    </table> 
    </td>  <td width="118" height="30" valign="top"> <a href="syse/syse02.htm" target="mainFrame" onClick="setColor()">
    <font color="">人事档案</font></a>
    </td> 
    </tr>  <tr bgcolor="#637fb9"> 
    <td width="36" bgcolor="#637fb9" valign="top"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" height="20"> 
    <tr> 
    <td width="37" height="20"> 
    </td> 
    <td width="10" background="images/line.gif" valign="top" height="20"><a href="#" onClick="expandIt('elOne'); return false"><img src="images/midminus.gif" width="16" height="16" border="0"></a></td> 
    </tr> 
    </table> 
    </td>  <td width="118" valign="top"> <a href="#" onClick="setColor()">
    <font color="">组织管理</font></a> 
    </td> 
    </tr> 
    </table>  <div ID="elOneChild" CLASS="child" style="margin-left: 0.5px"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="24%"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" height="50"> 
    <tr> 
    <td width="20" height="30"> 
    </td> 
    <td width="17" background="images/line.gif" valign="top" height="30"></td> 
    </tr> 
    </table> 
    </td> 
    <td width="76%"> 
    <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center" id="table2"> 
    <tr bgcolor="#637fb9"> 
    <td width="18%" background="images/line.gif"><img src="images/lastblk.gif" width="16" height="16"></td> 
    <td width="82%" height="25"><a href="syse/syse03-1.htm" target="mainFrame" onClick="setColor()">
    <font color="">组织框架</font><a></a></a>
    </td> 
    </tr> 

    <tr bgcolor="#637fb9"> 
    <td width="18%" valign="top"><img src="images/lastblk.gif" width="16" height="16">
    </td> 
    <td width="82%" height="25"><a href="syse/syse03-2.htm" target="mainFrame" onClick="setColor()">
    <font color="">公司信息</font><a></a></a>
    </td> 
    </tr> 
    </table> </td> 
    </tr> 
    </table> 
    </div> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="14%"> 
    </td> 
    <td width="86%" valign="top"><img src="images/bj.gif" width="97" height="8"></td> 
    </tr> 
    </table> 
    </div> 
    </td> 
    <td width="1" valign="top" background="images/bj04.gif" height="655"> 
    </td> 
    </tr> 
    </table> 
    </body> 
    <SCRIPT LANGUAGE="JavaScript1.2"> 
    <!-- 
    if(NS4){ 
    firstEl = "elOneParent"; 
    firstInd = getIndex(firstEl); 
    showAll(); 
    arrange(); 

    //--> 
    </SCRIPT> 
    <SCRIPT LANGUAGE="JavaScript"> <!-- hide function goHist(a) { history.go(a); } //--> </SCRIPT> 
    </html>
    以上是笨办法
      

  3.   

    对程序中用到的两个TABLE都作了标识了,并直接在程序中引用,程序灵活性就比较差了,不过功能算是马马虎虎达到了:)<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table1"> 
    <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center" id="table2"> 
      

  4.   

    幫你改的過程中我好象在做一個証明題一樣﹐結論如下﹕
    跟include/Font.css文件無關﹔
    以你目前的思路或者說方法無法實現你的意圖﹐因為你的父層和子層不屬于同一層﹐你可以加這一句alert(objSRC.parentNode.children.length);檢查出點擊時執行的事件并沒有檢查出父層或子的數目﹐所以只會改變同層的顏色。我試圖把他們放到同一層來處理﹐但這樣就很難實現收合(或許可以﹐但我不想費太多的神)。
    針對你的情況我可以給你提供一些思路﹕
    1.每個font都給一個ID﹐同時加一個hidden物件﹐所記錄的ID的FONT COLOR=默認顏色﹐然后把點擊ID號記錄到HIDDEN﹐同時改顏色﹔
    2.你用一個循環檢測完父層(應該說最高層)的children時﹐每個children再檢測有多少個子children﹐并一一改色﹐這個方法我不知能否實現﹐思路而已﹔
    3.你這個方法就我的感覺真的很笨﹐你可以配合class,ID來實現﹐我看你的代碼應該是樹狀吧(沒圖﹐不肯定)﹐其實有很多例子你可以找﹐不過我沒有現成的﹐不然給你一個。
    以上純屬個人見解﹐可能會限于水平發表有誤﹐僅供參考。
      

  5.   

    更正1
    1.每個font都給一個ID﹐同時加一個hidden物件用于記錄點擊的ID﹐點擊時所記錄的ID的FONT COLOR=默認顏色﹐然后把點擊ID號記錄到HIDDEN﹐同時改顏色﹔