-RB-: clear timeout

hallo,

fogendes problem:
 meine seite muss in der lage sein herauszufinden ob ein timeout am laufen ist oder nicht. der timeout heist immer aktiv,  also dachte ich mir ich frage einfach
if(aktive==true)cleartimeout(aktiv);
das scheint aber ganz und garnicht zu gehen genauso wenig wie
if(aktiv)cleartimeout(aktiv);
wenn kein timeout läuft  scheint meine if formulierung trotzdem true zu sein...
hier der gekürzte code:

function show(wert) {

if(wert=="about" && document.all){document.all.about.style.visibility = "visible";}

}

function hide() {

if(document.all){document.all.about.style.visibility = "hidden";}
}
//-->
</script>

<div style="position:absolute; top:10; left:150; color: turquoise;" >
  <span onMouseOver="<!-- hier beginnt die stelle die nicht geht -->if(aktiv==true)window.clearTimeout(aktiv);<!--hier endet die problem stelle--> show('about'); " onMouseOut="aktiv=window.setTimeout('hide()',1500);">bla bla</span
</div>
<div id="about" style="position:absolute;top:30; left:120; visibility:hidden;" onMouseOver="window.clearTimeout(aktiv);"
  onMouseOut="aktiv=window.setTimeout('hide()',1500);">
    <a href="#">bla bla</a>
      </div>

</div>

ich hoffe ich habe nix wichtiges rausgekürzt....

grundsätzlich läuft das ganz gut, es wird aber tricky sobald ich von dem div "about" wieder in das obere div gehen, dann läuft der timeout weiter und blendet unten aus was dann zT dazu führt das man durch mausbewegungen das div "about" zum blinken bringen kann
die fehlermeldung die ich bekomme wenn ich bei obigen code zum ersten mal auf das erste div gehe lautet sinngemäss das about nicht exsistiert, deswegen dachte ich ich kann mit if() abfragen obs denn da ist ...

thx
-RB-

  1. habe es so gelöst das ich beim starten der seite ein
    aktiv= settimeout('void()',100) starte der überhauptnix macht, dann kann ich die abfrage weglassen, und mein ie beschwert sich nicht wenn ich pauschal cleartimeout mache obwohl gar keine timeouts laufen

    wäre aber trotzdem nicht schlecht wenn jemand weis wie ich abfragen kann ob ein timeout läuft...

  2. Hallo auch,
    die Frage ist, was ist der Rückgabewert der Funktion window.setTimeout?
    Doch sicher nicht vom Boolean-Typ sondern eher ein Handle oder Objekt vermute ich, also probier mal
    var about=null;
    global im Script zu deklarieren und
    if (aktiv) anstelle von if(aktiv==true) zu verwenden.
    Im IE 5.5 hats geklappt.
    Gruß Lutz.