Avatar billede codegirl Nybegynder
06. november 2006 - 23:55 Der er 5 kommentarer og
1 løsning

Menu problem ved onclick/onmouseover

Hej

Jeg har en menu, som har 3 funktioner.

Her er mouseover:
<script language="JavaScript">
function rollIn(imgName)
{
if (document.images)
{
document[imgName].src=eval(imgName + "on.src");
}
}

Denne sørger for billed til det menupunkt der er valgt og fravælge alle andre:


var buttonClicked = null;
function clickButton(imgName)
{
var num = parseInt(imgName.substring(7),10);
for (i=1;i<8;i++)
{
if(i!=num)
{
imgOff="button_"+i+"_";
document[imgOff].src=eval(imgOff + "off.src");
}
}
buttonClicked= imgName;
}

Så dermed skulle det valgte billed blive gemt i buttonClicked.

Så har jeg følgende til mouseout:
function rollOut(imgName)
{
if (document.images&&imgName!=buttonClicked)
{
document[imgName].src=eval(imgName + "off.src");
}
}
</script>

Hvor der tjekkes på at det ikke er det valgte buttonClicked vi er på.

Det er sådan jeg har forstået koden, men alligevel så laves der en rollout efter klik på menu hvis jeg ikke hurtigt fjerner musen, derved mister man det at man kan se hvilket menupunkt man er på. Det er som om den ikke bruger buttonClicked til noget som helst...

Er der nogen der kan hjælpe??
Avatar billede jhe-ting Nybegynder
07. november 2006 - 06:41 #1
De tre funktioner, du har, ser ud som om de kunne virke, hvis alle udvendige betingelser var opfyldt.
Det er ikke let at finde fejl i kodefragmenter. For at tydegliggøre kunne du vise (et fragment af) den HTML-kode der udviser problemet.

PS: Det er ikke nødvendigt med 'eval()' for at lægge to strenge sammen. (Jeg gætter på at parameteren imgName er en streng...)
Avatar billede codegirl Nybegynder
07. november 2006 - 10:50 #2
Jeg tror måske problemet består i at jeg har koden indlejret i asp og dette er i en include fil så ved klik på et menupunkt så kommer jeg til en ny side, hvor menu igen er include og så har den jo sikkert glemt hvad buttonclicked var...
Avatar billede jhe-ting Nybegynder
07. november 2006 - 15:01 #3
Siderne kunne hver især have en onload-rutine, til at fremhæve den til siden svarende knap.

Ellers kan navnet eller nummeret på knappen overføres som parameter til den nye side.

Bedst ville være at serveren via ASP genererer det rigtige til de pågældende sider.
Avatar billede codegirl Nybegynder
10. november 2006 - 00:30 #4
ok har du nogle forslag til hvordan? såen kodemæssigt?
Avatar billede jhe-ting Nybegynder
10. november 2006 - 00:45 #5
Hov - jeg så lige fejlen. Ret linjen:

  var num = parseInt(imgName.substring(7),10);

til

  var num = parseInt(imgName.substring(7,7),10);

Jeg tror det skulle kunne gøre det ...
Avatar billede codegirl Nybegynder
10. november 2006 - 01:46 #6
Hej

Havde ikke set dit svar, men har ikke gjort dette, men puttede en ekstra query på linket som jeg fangede og så gemte det i session og tjekkede både på rollout og rollin, og dette fik det til at virke.
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