Avatar billede iceworld.tk Nybegynder
12. august 2002 - 15:13 Der er 3 kommentarer og
1 løsning

Javascript: hvor er fejlen ?

En javascript menu opfører sig forkert.
Menuen kan ses på www.iceworld.tk / http://home1.stofanet.dk/commander
Hvor i koden ligger fejlen ? det er mening at menuen der kommer frem når man kører ´musen henover skal komme frem lige neden under.


Scriptet -----------



////////////////////Please leave this notice////////////////////
//
//    DropDown Menu 1.0
//    By Evgeny Novikov (java@aladin.ru)
//    http://java.skyteam.ru
//    It works only with IE5.0(++) and Netscape6.0(++)
//    Free to use!
//
////////////////////Last modified 2002-03-05////////////////////

//    Modify following four lines to customize your menu
var tdColor="#000000";        // menu item text color
var tdBgColor="#ED953C";    // menu item background color
var hlColor="#000000";        // highlight text color
var hlBgColor="#FFFFBB";    // highlight background color
//    After change, modify same values in your *.css file

var md=250;
var ti=-1;
var oTd=new Object;
oTd=null;

function doMenu(td){
    clearTimeout(ti);
    td.style.backgroundColor=hlBgColor;
    td.style.color=hlColor;
    var i;
    var sT="";
    var tda=new Array();
    tda=td.id.split("_");
    if(oTd!=null){
        var tdo=new Array();
        tdo=oTd.id.split("_");
        for(i=1;i<tdo.length;i++){
            sT+="_"+tdo[i];
            if(tdo[i]!=tda[i]){
                document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
                document.getElementById("td"+sT).style.color=tdColor;
                if(document.getElementById("tbl"+sT)!=null)
                    document.getElementById("tbl"+sT).style.visibility="hidden";
            }
        }           
    }
    oTd=td;
    sT="tbl";
    for(i=1;i<tda.length;i++)
        sT+="_"+tda[i];
    if(document.getElementById(sT)!=null)
        document.getElementById(sT).style.visibility="visible";

}

function clearMenu(){
    if(oTd!=null){
        var tdo=new Array();
        tdo=oTd.id.split("_");
        var sT="";
        for(var i=1;i<tdo.length;i++){
            sT+="_"+tdo[i];
            document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
            document.getElementById("td"+sT).style.color=tdColor;
            if(document.getElementById("tbl"+sT)!=null)
                document.getElementById("tbl"+sT).style.visibility="hidden";
        }
        oTd=null;           
    }
}

function runMenu(strURL){
    location.href=strURL;
}

var tt="";
var sT="";
var pT=new Array();
var tA=new Array();

function getCoord(st){
    tA=st.split("_");
    if(tA.length>2){
        tA=tA.slice(0,-1);
        tt=tA.join("_");
        return (document.getElementById("tbl"+tt).offsetTop+document.getElementById("td"+st).offsetTop+4)+"px;left:"+
            (document.getElementById("tbl"+tt).offsetLeft+document.getElementById("td"+st).offsetWidth-2)+"px\">";
    }
    return (document.getElementById("mainmenu").offsetTop+document.getElementById("td"+st).offsetHeight-2)+"px;left:"+
          (document.getElementById("mainmenu").offsetLeft+document.getElementById("td"+st).offsetLeft+5)+"px\">";
}

var sH="<table class=\"menu\" id=\"mainmenu\" cellspacing=\"4\"><tr>";
var p=0;
var j=0;
while(eval("typeof(td_"+ ++j +")!=\"undefined\"")){
    sH+="<td id=\"td_"+j+"\" onmouseover=\"doMenu(this)\" onmouseout=\"ti=setTimeout('clearMenu()',md)\"";
    sH+=(eval("typeof(url_"+j+")!=\"undefined\""))?" onclick=\"runMenu('"+eval("url_"+j)+"')\">":">";
    sH+=eval("td_"+j)+"</td>";
    if (eval("typeof(td_"+j+"_1)!=\"undefined\""))
        pT[p++]="_"+j;
}
sH+="</tr></table>";
document.write(sH);
for(var q=0;typeof(pT[q])!="undefined";q++){
    sT=pT[q];
    sH="";
    j=0;
    sH+="<table class=\"menu\" id=\"tbl"+sT+"\" cellspacing=\"0\" style=\"center:"+getCoord(sT);
    while (eval("typeof(td"+sT+"_"+ ++j +")!=\"undefined\"")){
        sH+="<tr><td id=\"td"+sT+"_"+j+"\" onmouseover=\"doMenu(this)\" onmouseout=\"ti=setTimeout('clearMenu()',md)\"";
        sH+=(eval("typeof(url"+sT+"_"+j+")!=\"undefined\""))?" onclick=\"runMenu('"+eval("url"+sT+"_"+j)+"')\">":">";
        sH+=eval("td"+sT+"_"+j)+"</td></tr>";
        if (eval("typeof(td"+sT+"_"+j+"_1)!=\"undefined\""))
            pT[p++]=sT+"_"+j;
    }
    sH+="</table>";
    document.write(sH);
}
document.getElementById("mainmenu").style.visibility="visible";

---------
Avatar billede Slettet bruger
12. august 2002 - 15:17 #1
Er det ikke tredje gang, du opretter dette spørgsmål?
Avatar billede terra Nybegynder
12. august 2002 - 18:05 #2
Det ser ut at feilen ligger ikke her, men i din menu_data.js
Her definerer du plassering.
Avatar billede iceworld.tk Nybegynder
13. august 2002 - 15:47 #3
Ups min fejl
Avatar billede terra Nybegynder
13. august 2002 - 16:29 #4
Takk for points :)
Det ser ut at du fekk hjelp med det siste :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester