Ist es möglich in einer JavaScript-Funktion das onMouseOver-Event zu überwachen?
Zur Erklärung:
Ich habe ein Script geschrieben, dass per onMouseOver eine Liste mit Links anzeigt.
Damit die Liste auch wieder verschwindet, habe ich eine onMouseOut-Funktion definiert, die die Liste wieder verschwinden lässt.
Damit man überhaupt Zeit hat mit dem Mauszeiger in die Liste zu kommen um dort einen Link anzuklicken, habe ich in der onMouseOut-Funktion eine einfache for-Schleife integriert, die die Liste noch etwa 5 sec. sichtbar lässt.
Während die Schleife läuft ist jetzt aber keiner der Links anklickbar und dann verschwindet die Liste.
Ich habe versucht jeden Link in der Liste ebenfalls mit dem gleichen onMouseOver-Event zu versehen, das ja dann die Liste sichtbar lassen würde.
Aber darauf kommt keine Reaktion, weil die Links wie gesagt nicht klickbar sind und das Event daher eben auch nicht funktioniert.
Ich bräuchte jetzt also einen Zusatz, der dafür sorgt, dass die for-Schleife beendet wird, sobald ein neuer onMouseOver aktiv wird.
Geht sowas?
Oder gibt es eine bessere Lösung als diese Schleife, um das Problem zu lösen?
setTimeout und setInterval funktionieren nur beim ersten Aufruf des Effekts, danach erfolgt sofort der onMouseOut. Bringt also auch nichts.
naja, pseudecode halt, der den ansatz verdeutlichen sollte.
ok, also hier noch mal ein bissel ausfuehrlicher, aber nciht ausprogrammiert:
var tmr;
// zeigt onmouseover die liste an, und loescht den timeout
function showList()
{
clearTimeout(tmr);
liste.show();
}
//startet die verzoegrung fuer das ausblenden und blendet danach die liste aus
funciton hideList(arg1)
{
clearTimeout(tmr);
if (arg1==1) { liste.hide(); }
else { tmr = setTimeout('hidelist(2)',1000); )
}
foo
bar
baz