setTimeout Varibalenübergabe falsch?
Joegr
- javascript
Hallo,
hat jemand eine Idee? Der Button <input type="button" value="HELP!" onClick="showHelp('helpupload')"> blendet das Bild mit der ID: helpupload ein. Dieses soll nach 5 Sekunden automatisch wieder ausgeblendet werden. Die Variable "theme" ist dann in setTimeout() nicht mehr bekannt. Habe mal vrsucht Sie nach dem ersten Aufruf zu deklarieren, so dass sie global verfügbar wird:
function showHelp(theme){
var neu = theme;
...
}
... und dann in der Funktion closeHelp() die var "theme" durch "neu" ersetzt, klappt nicht :-( Woran liegts?
<script type="text/javascript">
function showHelp(theme){
x = document.getElementById(theme);
x.style.display = 'inline';
setTimeout("closeHelp(theme)", 5000);
}
function closeHelp(theme){
x = document.getElementById(theme);
x.style.display = 'none';
}
</script>
<img id="helpupload" src="helpme_close.gif" alt="" style="display:none">
<input type="button" value="HELP!" onClick="showHelp('helpupload')">
Gruß
Jörg
Hallo!
function showHelp(theme){
var neu = theme;
...
}
Weil es bei Dir eine Variable der Funkton showHelp() ist und nicht global verfügbar.
var neu = "";
function showHelp(theme){
neu = theme;
...
}
Schönen Gruß
Afra
Danke, funktioniert. Ich war der Meinung, dass wenn ich eine Variable in einer Funktion explizit mit var deklariere, diese dann auch außerhalb zur Verfügung steht. So kann man sich irren ..
Gruß
Jörg
Hallo!
function showHelp(theme){
var neu = theme;
...
}Weil es bei Dir eine Variable der Funkton showHelp() ist und nicht global verfügbar.
var neu = "";
function showHelp(theme){
neu = theme;
...
}Schönen Gruß
Afra
Hellihello
Danke, funktioniert. Ich war der Meinung, dass wenn ich eine Variable in einer Funktion explizit mit var deklariere, diese dann auch außerhalb zur Verfügung steht. So kann man sich irren ..
Genau das Gegenteil ist der Fall bei Javascript.
frankx
Hallo,
> function showHelp(theme){
> x = document.getElementById(theme);
> x.style.display = 'inline';
setTimeout("closeHelp('"+theme+"')", 5000);
> }
Gruß aus Berlin!
eddi