mmofacts.com

Hilfe bei js countdown

gepostet vor 18 Jahre, 4 Monate von Kapsonfire

var rest = '';
function weltreise(time) {
time--;
if (time < 1) {
text = '';
} else {
rest=time;
text = "Du kannst in " + rest + " Sekunden weiterreisen.";
window.setTimeout('weltreise()', 1000);
}
getElementById('time_div').firstChild.data = text;
}


weltreise(5);

 
was ist falsch, das es nicht funktioniert bzw. nciht angezeigt wird?
gepostet vor 18 Jahre, 4 Monate von Tweety
was mir direkt erstmal auffällt: hinter
rest=time (Z. 7)
muss ein Semikolon...
gepostet vor 18 Jahre, 4 Monate von Klaus
Original von Tweety
was mir direkt erstmal auffällt: hinter
rest=time (Z. 7)
muss ein Semikolon...

Das ist aber noch nicht alles.
@Themenstarter
Wie viele Fehler hast du denn versteckt? Ich habe bisher 3 gefunden.
gepostet vor 18 Jahre, 4 Monate von Kapsonfire
ich würde gerne alle wissen... leider bin ich im js nicht so gut bewandert... aber semikolon sollte cih eigentlicvh wissen^^
gepostet vor 18 Jahre, 4 Monate von xXxClan
Original von Browser-Games World

function weltreise(time) {
time--;
if (time < 1) {
text = '';
} else {
rest=time
text = "Du kannst in " + rest + " Sekunden weiterreisen.";
window.setTimeout('weltreise()', 1000);
}
getElementsById('time_div').firstChild.data = text;
}

reisen('5');

 
was ist falsch, das es nicht funktioniert bzw. nciht angezeigt wird?

Also ohne es jetzt auszuprobieren fällt mir folgendes auf:
1.: Die Variable rest wurde nicht intialisiert (oder als global?)!
2.: Das Feld "time_div" hat kein erstes Kind-Element und dieses nciht existierende Erste-Kind Element hat auch kein Attribut welches data heißt!
3.: Die Funktion die du aufrufst heißt reisen, die von dir erstellte Funktion heißt weltreise
4.: Du übergibst an die Funktion einen String, willst ihn allerdings als Zahl verwenden, parseInt() ist hier dein Freund oder du lässt einfahc die Quotes weg
5.: Du Eröffnest hier im Entwickler Forum(!) einen Thread über einen wahrscheinlich einfachen Fehler im Script, den man wohl über einfaches try { ... } catch(e) { alert(e); } finden könnte. Davon abgesehen dass du damit nicht wenige hier nervst ist der Lernerfolg für dich persönlich relativ gering wenn du einfahc den ganzen Code hier ins "Pro-Forum" stellst und andere die Arbeit machen lässt.
Greetz,
xXx
gepostet vor 18 Jahre, 4 Monate von KoMtuR
6. er übergibt rest (oder time...alles das gleiche) nicht im setTimeout...Darum wirds nicht gehen. Funktionsaufrufe sind in jeder Sprache das gleiche. Da macht js keine Ausnahme. Frag am besten Google und nimm nen Fertigskript. Das hat wenigstens keine Fehler ^^
edit: angefügt an knallis Aussage unter mir. das ding heißt getElementById und nicht getElementsById. Wie der Name schon sagt. Du willst nur 1 Element zurück haben. Man darf im Dokument eh nur eine Id einmal vergeben
gepostet vor 18 Jahre, 4 Monate von knalli
getElementById muss im Bezug zu einem Objekt stehen.. ich würd es da mal mit document versuchen
Abgesehen davon.. hatten wir das Thema Counter in JS nicht schon mal im Forum? Ich meine sogar als vollständiges Script in PHP, damit es dynamisch geht... Suchfunktion mal nutzen.
Also sag mal, kommen wir alle auch mit auf die Teamseite?
gepostet vor 18 Jahre, 4 Monate von Klaus
Original von xXxClan
2.: Das Feld "time_div" hat kein erstes Kind-Element und dieses nciht existierende Erste-Kind Element hat auch kein Attribut welches data heißt!

Ich will ja nicht klugscheißern, aber das ist ausnahmsweise doch richtig. Nicht vergessen: Der Textknoten ist das erste "Kind" von Div.
gepostet vor 18 Jahre, 4 Monate von Kapsonfire
jetzt alles richtig oder was vergessen... das mit der funktion aufrufen ahb ich nur hier im forum flasch gemacht.. in der phpdatei ist es richtig...
und nein normalerweise ist das ja variable ich habs jetzt nur für das forum so gemacht
gepostet vor 18 Jahre, 4 Monate von mifritscher
mal ganz allgemein: die meisten Browser haben einen Möglichkeit JS-Fehler anzuzeigen, beim FF z.B. unter Extras->JS-Konsole.
Damit solltest du schon die meisten Flüchtigkeitsfehler finden.
Für den Rest gibt es alert() :-)
P.S. Semikolons sind bei JS NICHT mehr notwendig, stattdessen reicht ein einfacher Zeilenumbruch.
gepostet vor 18 Jahre, 4 Monate von Kapsonfire
lol
bei mir hört der nie auf zu stoppen weil er noch die verlinkten sein überprüft
gepostet vor 18 Jahre, 4 Monate von mifritscher
Dann schmeiß halt die verlinkten Seiten raus *g*
Wenns deine Seiten sind: happy aufräuming
gepostet vor 18 Jahre, 4 Monate von Kapsonfire
hab ne bessere idee... ich werd einfach den js code gesondert in eine datei schreiben^^
gepostet vor 18 Jahre, 4 Monate von Kapsonfire

function weltreise(time) {
time--;
if (time < 1) {
text = '';
} else {
rest=time
text = "Du kannst in " + rest + " Sekunden weiterreisen.";
window.setTimeout('weltreise()', 1000);
}
document.getElementById('time_div').firstChild.data = text;
}
weltreise(5);
 

du kannst in NaN sekunden weiterreisen.... wieso wird da nan angezeigt?
EDIT
fehler behoben! thread kann geschlossen werden
gepostet vor 18 Jahre, 4 Monate von mifritscher
Sag ich doch, man muss sich nur zu helfen wissen :-)
gepostet vor 18 Jahre, 4 Monate von Todi42
NaN ist die Abkürzung für "Not a Number" und kann z.B. das Ergebniss von 42 / 0 sein. NaN wäre für Sprachen, die Variablen implizit initialisieren auch ein vernünftiger Wert.

Auf diese Diskussion antworten