Avatar billede webint Nybegynder
21. marts 2007 - 18:24 Der er 1 kommentar

javascript setinterval alert udskriver et tal?

hvorfor udskriver den "2"? hvor kommer det fra?

<script>
var menu;
function sletmenu()
{
  //aaaaa
}

menu = setTimeout("sletmenu()",1000);
alert(menu);

</script>
Avatar billede roenving Novice
21. marts 2007 - 18:37 #1
Tallet er (vist nok) tilfældigt genereret, og identificerer den pågældende timeout, så man kan slette den, hvis den skulle være blevet uaktuel ...

-- et eksempel er, at man har en menu med undermenuer, som vises ved mouseover på hovedpunktet ...

-- det skal så være sådan at undermenuen skal fjernes, når musen ikke er over mere, men den skal selvfølgelig ikke fjernes, hvis musen bevæges ned over menuen, og så sætter man en setTimeout-variabel, så fjernelsen af undermenuen kan afblses, hvis der kommer hover på undermenuen:

Hovedpunktet har så f.eks.

onmouseover="visMenu('under1',true);" onmouseout="visMenu('',false);"

Undermenuen har så

onmouseover="visMenu(this.id,true);"  onmouseout="visMenu('',false);"

-- og et script, kan f.eks. se sådan ud:

<script type="text/javascript">
var timeoutId = null,submenu;
function visMenu(elm,action){
  if(!action){
    timeoutId = setTimeout("document.getElementById(submenu).style.display='none';",150);
    return;
  }
  if(timeoutId)
    clearTimeout(timeoutId);
  timeoutId = null;
  submenu = elm;
  document.etElementById(submenu).style.display = "block";
}
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

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