Hi
Ich habe eine kurze Frage bezüglich Variablen die in setTimeout übergeben werden.
Hier ein kleiner Testcode.
Die Funktion blub wird aufgerufen und übergibt der Funktion hideNavi die Variabel navistyle. Diese Variable trägt in der Funktion hideNavi nur noch den Namen style.
Wenn ich in der Funktion hideNavi die Funktion nochmals aufrufen will kann ich aber nicht "style" übergeben sondern muss "navistyle" übergeben. Woher kommt das?
Verstehe nicht ganz wieso hier nicht die Variable style genommen werden muss, weil die Variable "navistyle" ja nur in der Funkion blub() gültig sein dürfte und in hideNavi(style) diese gar nicht sichtbar sein sollte.
Grüsse
jeipack
Ich habe eine kurze Frage bezüglich Variablen die in setTimeout übergeben werden.
Hier ein kleiner Testcode.
Die Funktion blub wird aufgerufen und übergibt der Funktion hideNavi die Variabel navistyle. Diese Variable trägt in der Funktion hideNavi nur noch den Namen style.
Wenn ich in der Funktion hideNavi die Funktion nochmals aufrufen will kann ich aber nicht "style" übergeben sondern muss "navistyle" übergeben. Woher kommt das?
Javascript:
function blub() {
navistyle = document.getElementById("navi").style;
navispeed=1;
hideNavi(navistyle);
}
var navispeed=1;
function hideNavi(style) {
var width=parseFloat(style.width);
style.width=width-navispeed+"%";
navispeed=navispeed+1;
if(width>navispeed) {
setTimeout("hideNavi(navistyle)", 500); //wieso hier navistyle und nicht style****
}
else {
style.width="0%";
}
}
Verstehe nicht ganz wieso hier nicht die Variable style genommen werden muss, weil die Variable "navistyle" ja nur in der Funkion blub() gültig sein dürfte und in hideNavi(style) diese gar nicht sichtbar sein sollte.
Grüsse
jeipack
Zuletzt bearbeitet von einem Moderator: