@justanotheruser: der Hauptgrund für meinen Beitrag war der Link. Die Hinweise auf den "schlechten" Code sind als guter Rat gemeint. Ich kann dir gerne die Stellen in deinem Code aufzeigen, an denen ich etwas zu mäkeln habe (ich könnte auch alle Punkte belegen, wenn der Code nicht gelöscht worden wäre):
1. bei deinem Code sind die Variablen x und y überflüssig, da du sie erzeugst, indem du die CSS-Eigenschaft .left bzw. .top in einen Int parst und danach verwendest du sie, um exakt die gleichen CSS-Eigenschaften eines anderen Elements zu setzten (dabei musst du die Einheit auch noch auf "px" festlegen, was nicht unbedingt die Originaleinheit gewesen sein muss).
2. die Variable piu ist komplett überhaupt nicht deklariert und dass sie auf das Element mit der id="piu" verweist, ist dem Quirksmode zu verdanken... das war aber im vorherigen Code auch schon so.
3. (war nicht in der Aufzählung oben) Außerdem bin ich ein Freund konstanten Codestils und mach deswegen bei JS für die öffnende geschweiften Klammern nie eine neue Zeile (z.B. bei
), da es Fälle gibt, in denen das zwingend nötig ist, um das gewünschte Verhalten zu bekommen:
Code:
function test(){
return
{
test: "hallo"
}
}
alert(test().test);
4. Deine Indentation ist zwar nicht so verwirrend, wie die des Orignalcodes, aber auch inkonsistent (verschiedene Tiefen (2 vs. 4), Kommentare gar nicht eingerückt, geschweifte Klammern manchmal eingerückt - manchmal nicht und eine Zeile ist dir verrutscht) - ist jetzt eine reine Ästhetik-/Codestilfrage, aber ein sauber formatierter Code erhöht die Lesbarkeit und erleichtert damit das Verständnis.
Irrelevant sind die Fehler nicht. Ich habe das alles über den harten Weg lernen müssen und dabei ist viel Zeit draufgegangen. Diese Zeit erspare ich gerne jedem Anfänger und versuche ihn - gleich zu Beginn seiner JS-"Karriere" - auf einen Weg zu bringen, auf dem JS lernen mehr Spaß, weniger Frust und weniger Nacharbeit am Code bedeutet.
Konkrete Hilfe hattest du schon gegeben (meiner Meinung nach etwas zu konkret, da es meiner Meinung nach hier nicht unsere Aufgabe ist, die Hausaufgaben anderer Leute zu machen - aber darüber könnte man streiten) - darum hatte ich mich auf die gerenellen Probleme mit dem Code konzentriert. (Eine komplett funktionierende Lösung hier in Codeform zu präsentieren ist bei einem Anfänger meiner Meinung nach auch kein "Begleiten" zur Lösung... aber das nur am Rande)
@joeschti: Um die "Qualität" eines Codes zu überprüfen gibt es JSLint und
JSHint (von ersterem halte ich nicht so besonders viel, da es zu viele Dinge anmäkelt und (meines Wissens nach) nicht weiterentwickelt wird). Die Qualität habe ich in Anführungsstriche gesetzt, da hier natürlich nicht die Logik/Sinnhaftigkeit deines Codes geprüft werden kann. Aber so Sachen wie vergessene Semikola, Codeblöcke ohne geschweifte Klammern, undeklarierte Variablen kann man damit gut finden.
HTML5 ist eine gute Wahl (verwende ich auch), da es zur Zeit so aussieht, als ob das der Zweig der großen HTML-Baums ist, dem es erlaubt wird weiterzuwachsen.
Wir gehen hier gerne auch Anfängern zu Hand. Ich glaube auch nicht, dass sich hier jemand mit Stephen Hawking auf dem JS-Gebiet vergleichen würde... ich auf keinen Fall.
Für den gelöschten Code muss ich dir einen Rüffel erteilen (auch wenn ich deine Gründe halbwegs verstehen kann - für mich ist ein Kompetenzzeichen, dass man sich bei Problemen bei den richtigen Leuten Hilfe holt), da du es kommenden Hilfesuchenden unmöglich machst, aus deinen Fehlern zu lernen.