Elemente mit setTimeout() verzögert ausblenden: Probleme mit ID-Übergabe

Hi,

Die id ist nur innerhalb der Funktion bekannt, beim Aufruf per setTimeout() wurde diese aber bereits verlassen.

Das Problem wird ja durch den Aufruf mit function() {...} schon umgangen. Das zeitverzögerte Ausblenden funktionierte ja auch schon.
Das Problem ist eher, dass beim Navigieren mehrere Timeouts generiert werden, diese aber in der selben Variable gespeichert werden.

Schreib' Deine Funktionen mal so um:

Javascript:
function Ausblenden(id) {
   eval("t_" + id + "= window.setTimeout(function() {AusblendenIntern(id);}, Timer);");
}
function TimerBeenden(id) {
   eval("window.clearTimeout(t_" + id + ");");
}

Dann musst Du natürlich in den anderen onmouseover-Events TimerBeenden mit der entsprechenden Id auch aufrufen.

LG
 
Zuletzt bearbeitet von einem Moderator:
Code:
if( document.getElementById(id).style.display = 'none' )
dort fehlt ein = , denn dort musst du vergleichen, und nicht zuweisen.

Ferner ist JS nicht imstande, style-Attribute aus globalen Stylesheets zu ermitteln, die display-Eigenschaften musst du also direkt in den Elementen notieren.
 
Zurück