10. november 2004 - 00:02
Der er
13 kommentarer og 1 løsning
flet SetTimeOut() ind i script
Er der nogle der kan finde ud af at flette setTimeOut() ind i dette script så den sætter visibility til hidden efter 2 sekunder <script language="JavaScript"> <!-- n=document.layers; ie=document.all; function showlabel(labelid){ if(ie || n){ if(n) {document.layers[labelid].visibility="show";} else {document.all(labelid).style.visibility="visible";} } } function hidelabel(labelid){ if(ie || n){ if(n) {document.layers[labelid].visibility="hidden";} else {document.all(labelid).style.visibility="hidden";} } } // --> </script> Jeg har prøvet men det gik fuldstændig i ged Mange tak
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
10. november 2004 - 00:09
#1
hvor kalder du din hadelabel?
10. november 2004 - 00:09
#2
hide
10. november 2004 - 00:11
#3
<a href="#" onmouseout="timer=setTimeout('hidelabel(id1)', 2000 );">link</a> sådan?
10. november 2004 - 00:12
#4
<div ... onMouseout="hidelabel('label1');"> Er det det du mener??
10. november 2004 - 00:13
#5
og så måske lige gøre sådan at normale at mozilla-brugere kan være med: <script language="JavaScript"> <!-- n=document.layers; ie=document.all; dom=document.getElementById; function showlabel(labelid){ if(ie || n || dom){ if (dom) {document.getElementById(labelid).style.visibility="visible";} else if(n) {document.layers[labelid].visibility="show";} else {document.all(labelid).style.visibility="visible";} } } function hidelabel(labelid){ if(ie || n || dom){ if (dom) {document.getElementById(labelid).style.visibility="hidden";} else if(n) {document.layers[labelid].visibility="hidden";} else {document.all(labelid).style.visibility="hidden";} } } // --> </script>
10. november 2004 - 00:20
#6
og endnu kortere nu kun med én funktion ;-) <script type="text/javascript"> ns4 = (document.layers)? true:false ie4 = (document.all)? true:false dom =(document.getElementById)? true:false ns6 = (document.getElementById && !document.all)?true:false; function hidelabel(id,state){ var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; styleObj.visibility = state; } </script> <div id="lag1" style="visibility:hidden">asdkhakdh</div> <a href="#" onmouseover="hidelabel('lag1','visible')" onmouseout="timer=setTimeout('hidelabel(\'lag1\',\'hidden\')', 2000 );">link</a>
10. november 2004 - 00:21
#7
Der er et problem for den kan ikke finde ud af timeout'et hvis man tager den over objektet igen inden timeout er færdig Hvordan kommer man uden om det problem? Kan man slette det forige timeout?
10. november 2004 - 00:25
#8
<script type="text/javascript"> ns4 = (document.layers)? true:false ie4 = (document.all)? true:false dom =(document.getElementById)? true:false var timer; function hidelabel(id,state){ c = (timer)? clearTimeout(timer) : void(0); var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; styleObj.visibility = state; } </script> <div id="lag1" style="visibility:hidden">asdkhakdh</div> <a href="#" onmouseover="hidelabel('lag1','visible')" onmouseout="timer=setTimeout('hidelabel(\'lag1\',\'hidden\')', 2000 );">link</a>
10. november 2004 - 00:31
#9
Du har fuldstændig sat mig af Kan du forklare hvordan du klarer det problem jeg beskrev oven over?
10. november 2004 - 00:50
#10
<script type="text/javascript"> ns4 = (document.layers)? true:false ie4 = (document.all)? true:false dom =(document.getElementById)? true:false var timer; function hidelabel(id,state){ c = (timer !=false)? clearTimeout(timer) : void(0); var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; styleObj.visibility = state; } </script> <div id="lag1" style="visibility:hidden">asdkhakdh</div> <a href="#" onmouseover="hidelabel('lag1','visible')" onmouseout="timer=setTimeout('hidelabel(\'lag1\',\'hidden\')', 2000 );">link</a> Jeg tjekker om variablen "timer" er sat på linien c = (timer !=false)? clearTimeout(timer) : void(0); Er den det skal den cleare timer ellers intet void(0);
10. november 2004 - 01:22
#11
Kunne man så ikke smide setTimeout ind i den funktion også, sådan at den sætter den der og ikke i onmouseout?
10. november 2004 - 01:28
#12
jo selvfølgelig men det kommer jo an på hvor mange links du har om det kan betale sig. <script type="text/javascript"> ns4 = (document.layers)? true:false ie4 = (document.all)? true:false dom =(document.getElementById)? true:false var timer; function timeIt(id,state){ timer=setTimeout("hidelabel('"+id+"','"+state+"')", 2000 ) } function hidelabel(id,state){ c = (timer !=false)? clearTimeout(timer) : void(0); var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; styleObj.visibility = state; } </script> <div id="lag1" style="visibility:hidden">asdkhakdh</div> <a href="#" onmouseover="hidelabel('lag1','visible')" onmouseout="timeIt('lag1','hidden');">link</a>
10. november 2004 - 20:48
#13
Ok, egentlig virket det fint, men hvis jeg nu har flere links og jeg tager musen over alle sammen en efter en, vil kun den sidste forsvinde igen efter 2 sekunder og de andre vil forblive synlige, er der en måde at enten give dem en timer hver eller gøre alle andre usynlige når man tager den hen over en anden?
10. november 2004 - 20:48
#14
Det skal lige siges at jeg har 4 links i det hele
Vi tilbyder markedets bedste kurser inden for webudvikling