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>
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";
}