Schildi: setTimeout - part II []

Beitrag lesen

Hallo,

Hab ein menu gebastelt, das bei mouseOver die jeweiligen Unterpunkte öffnet (divs..).

Nun baute ich eine Verzögerungsfunktion (s.u.), damit das Untermenue bei mausout nicht sofort geschlossen wird.

Bewegt man die mouse allerdings über einen neuen Hauptmenupunkt, soll das letzte menu sofort geschlossen werden und die Verzögerungsfunktion (s.u.) erneut aufgerufen werden.

Wenn ich nun jedoch sehr schnell, also sachneller als die Verzögerungsfunktion dauert zwischen zB. 2 Hpt Menupunkten hin und her fahre, verschnellert sich der Ablauf der Timeout Funktion immer mehr und somit wird das u menu immer schneller geschlossen :(.

Das heisst die Timeout Funktion überlagert sich

Kann mir da jemand helfen? Wie kann ich zB. die Funktion sofort abbrechen wenn sie erneut aufgerufen wird?

Mit clearTimeout grieg ichs irgendwie nicht gebacken.
Flags kann ich auch nur dann einsetzten, wenn ich weiss wie ich die funktion abbrechen kann.

--->Alles: http://www.bb-holding.com/website_fpk/index.htm  <---

---delay funktion

function delayHide(){
if(delayStop<=delaySpeed){
  if(CMactiv==0){
   delayStop++;
  }
  MenuTimeout = setTimeout("delayHide()",100);
 }

else{
  delaying = 0;
  delayStop = delaySpeed;
  getEl(thisMenuName).visibility = "hidden";
  menuHidden[ThisMenuNr] = menuContentsGeneralNames+(ThisMenuNr+1)+"_hidden";
  }
}