window.setTimeout und visibility
mabsito
- javascript
Servus,
ich wollte mal fragen ob die Anweisung windows.setTimeout mit der Anweisung visibility zusammen funktionnieren würde. Ich habe in meinem Code ein Div erstellt, das nach einer bestimmten Zeit hidden werden soll. die Funktion setTimeout funktionniert aber leider nicht wie erwartet; d.h. das div verschwindet sofort. Hier ist mein Skript:
<script type="text/javascript" language="JavaScript">
function deactivate(menu)
{
window.setTimeout("deactivate(menu)", 10000);
document.getElementById(menu).style.visibility = "hidden";
}
</script>
und so wird die Funktion aufgerufen
<a ..... onmouseout="deactivate('meinDiv');" .../>
<div id="meinDiv" />
Kann mir jemand sagen, ob ich einen Fehler gemacht habe oder wie ich eine Lösung für mein Problem finden kann?
Vielen Dank
Mabsito
Mahlzeit mabsito,
<script type="text/javascript" language="JavaScript">
function deactivate(menu)
{window.setTimeout("deactivate(menu)", 10000);
document.getElementById(menu).style.visibility = "hidden";}
</script>und so wird die Funktion aufgerufen
<a ..... onmouseout="deactivate('meinDiv');" .../>
D.h., der Funktionsparameter namens "menu" besitzt dann den Wert 'meinDiv'. Du setzt dann einen Timeout, so dass 10 Sekunden später folgender Funktionsaufruf erfolgt:
deactivate(menu);
Allerdings gibt es keine globale Variable namens "menu", so dass das nicht funktionieren dürfte.
Wie auch immer - genau anschließend blendest Du das Element mit der ID 'meinDiv' (denn das ist ja der Wert des Funktionsparameters "menu") aus.
Funktioniert also genau so wie programmiert ...
Kann mir jemand sagen, ob ich einen Fehler gemacht habe oder wie ich eine Lösung für mein Problem finden kann?
Du hast anscheinend die Funktionsweise von http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=window.setTimeout() noch nicht richtig verstanden. Darüber hinaus hast Du anscheinend den Text unter "Beachten Sie:" nicht beachtet.
MfG,
EKKi
Hi EKKi & danke für deine Antwort !
ich fange an zu denken, dass setTimeout nicht die Lösung für mein Problem ist, da ich alles probiert habe und es funktionniert leider noch nicht.
Mahlzeit mabsito,
D.h., der Funktionsparameter namens "menu" besitzt dann den Wert 'meinDiv'. Du setzt dann einen Timeout, so dass 10 Sekunden später folgender Funktionsaufruf erfolgt:
deactivate(menu);
Allerdings gibt es keine globale Variable namens "menu", so dass das nicht funktionieren dürfte.
ich habe versucht eine globale Variable namens "menu" zu setzen mit dem Wert "meinDiv" und trotzdem hat es auch nicht geklappt. So sah mein Skript aus:
var menu="meinDiv";
function deactivate(menu)
{
window.setTimeout("deactivate(menu)",100000);
document.getElementById(menu).style.visibility = "hidden";
}
Dann habe ich mit einer lokalen Variable namens "menu" und auch mit dem Wert "meinDiv" versucht und genauso.
Wie auch immer - genau anschließend blendest Du das Element mit der ID 'meinDiv' (denn das ist ja der Wert des Funktionsparameters "menu") aus.
Funktioniert also genau so wie programmiert ...
Kann mir jemand sagen, ob ich einen Fehler gemacht habe oder wie ich eine Lösung für mein Problem finden kann?
Du hast anscheinend die Funktionsweise von
ok ich habe jetzt den Punkt "Beachten Sie:" nochmal gelesen und habe versucht mein code zu korrigieren:
function deactivate(menu)
{
window.setTimeout("deactivate('"+ menu+"')",100000);
document.getElementById(menu).style.visibility = "hidden";
}
Habe ich noch was mehr oder was vergessen?
Dann habe ich versucht durch 2 Funktionen mein Problem zu lösen. Eine Funktion für das Ausblenden vom Div, die durch eine Timer Funktion aufgerufen wird. So hat mein Skript ausgesehen; hat mir aber leider nicht viel geholfen:
var menu="meinDiv";
function deactivate()
{
document.getElementById(menu).style.visibility = "hidden";
}
function timer()
{
window.setTimeout("deactivate()",1000);
}
<a .... onmouseout="timer();" />
ich möchte nur eine Div nach einer beliebigen Zeitspanne ausblenden, könnte diese Funktion mir helfen oder soll ich nach einer anderen Lösung suchen?
viele Grüße
Mabsito
Mahlzeit mabsito,
ich möchte nur eine Div nach einer beliebigen Zeitspanne ausblenden, könnte diese Funktion mir helfen oder soll ich nach einer anderen Lösung suchen?
Was spricht gegen folgendes:
<script type="text/javascript">
[code lang=javascript]function deactivate(id) {
document.getElementById(id).style.visibility = 'hidden';
// Wobei ich hier vielleicht eher die Eigenschaft "[ref:self812;css/eigenschaften/positionierung.htm#display@title=display]" nutzen würde ...
}
</script>
[...]
<a ... onmouseout="window.setTimeout('deactivate('meinDiv')', 10000);" ...>
[...]
<div id="meinDiv" />
[/code]
MfG,
EKKi
Servus EKKi,
vielen vielen Dank für deine Hilfe!! Es funktionniert jetzt ganz gut!!
Schönen Tag noch und schöne Grüße aus Mittelfranken :)
mabsito
Mahlzeit mabsito,
ich möchte nur eine Div nach einer beliebigen Zeitspanne ausblenden, könnte diese Funktion mir helfen oder soll ich nach einer anderen Lösung suchen?
Was spricht gegen folgendes:
<script type="text/javascript">
[code lang=javascript]function deactivate(id) {
document.getElementById(id).style.visibility = 'hidden';
// Wobei ich hier vielleicht eher die Eigenschaft "[ref:self812;css/eigenschaften/positionierung.htm#display@title=display]" nutzen würde ...
}
>
> </script>
> [...]
> <a ... onmouseout="window.setTimeout('deactivate(\'meinDiv\')', 10000);" ...>
> [...]
> <div id="meinDiv" />
> [/code]
>
>
> MfG,
> EKKi
>