Avatar billede -42- Nybegynder
07. januar 2004 - 16:53 Der er 5 kommentarer og
1 løsning

problemer med menu

Jeg har et problem med en menu jeg er igang med at lave.

http://www.cbc.dk/newsite/

Jeg bruger en setTimeout funktion så menuen ikke forsvinder så snart jeg laver mouse out, den virker bare ikke...

Så skal jeg have udviddet den lidt, så den fader frem og ud...
Avatar billede Slater Ekspert
07. januar 2004 - 17:05 #1
Det ligger i JS-filer. Lidt besværligt at skulle kigge i.

Kan du ikke lige smide koden her?
Avatar billede -42- Nybegynder
07. januar 2004 - 17:06 #2
function MM_swapImgRestore() { //v3.0
  var b=MM_swapImgRestore.arguments;
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  document.getElementById(b[0]+'text').style.color = "#000000";
  myTimer = setTimeout(closeMenu(b[0]), 1000);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
  document.getElementById(a[0]+'text').style.color = "#ffffff";}
  document.getElementById(a[0]+'down').style.visibility = "visible";
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function closeMenu(b){
document.getElementById(b+'down').style.visibility = "hidden";
//alert("close menu"+b);
clearTimeout(myTimer);
}
Avatar billede Slater Ekspert
07. januar 2004 - 17:15 #3
Når du skriver en Timeout, som f.eks. setTimeout(closeMenu(b[0]), 1000)

så skal den handling der udføres skrives i doublequotes:

setTimeout("closeMenu(b[0])", 1000);

Ved ikke om det bare er det.
Avatar billede -42- Nybegynder
07. januar 2004 - 17:18 #4
Det virker ikke...
Avatar billede -42- Nybegynder
08. januar 2004 - 10:30 #5
lukker
Avatar billede roenving Novice
08. januar 2004 - 22:46 #6
Du skal have en deklaration af nyTimer udenfor funktionerne _og_ bruge viperines rettelse plus et cowboy-trick ...

Eksempel fra starten af filen:

var myTimer;
function MM_swapImgRestore() { //v3.0
  var b=MM_swapImgRestore.arguments;
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  document.getElementById(b[0]+'text').style.color = "#000000";
  myTimer = setTimeout('closeMenu('+b[0]+')', 1000);
}
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