Hallo,
if (xxxx.style.margin-left = "-300px")
Wie kommst du darauf, dass hier etwas verglichen wird? ;-)
Argl - hast Recht. Aber einem Rechenergebnis etwas zuweisen zu wollen ist auch sportlich ... oder wie würde der Parser in so einem Fall arbeiten? Würde er von xxxx.style.margin das Ergebnis der Zuweisung left = "-300px" abziehen und das Ergebnis vergessen?
nein, weil der Zuweisungsperator '=' schwächer bindet als die restlichen Operatoren. Andernfalls würde ja auch die Anweisung
a = b - c;
bedeuten: Weise a den Wert von b zu, subtrahiere dann den Wert von c, und wirf schließlich das Ergebnis weg. Der hier vorliegende Fall
a - b = c;
heißt also wirklich: Berechne die Differenz von a und b, und weise ihr den Wert von c zu. Da aber (a-b) kein L-Value[1] ist (die gekünstelte Übersetzung "Linkswert" ist auch blöd), kann keine Zuweisung ausgeführt werden.
Hmmm ... Fragen über Fragen.
Wieder eine weniger, hoffe ich ...
Ciao,
Martin
[1] L-Value ist mir aus C geläufig und bezeichnet einen Ausdruck, der eine Speicher-Referenz darstellt (also eine Variable oder einen dereferenzierten Zeiger) und daher auf der linken Seite einer Zuweisung stehen kann.
Die letzten Worte des Polizisten:
Ich hab mitgezählt, Leute: Sechs Schuss, jetzt hat er keine Munition mehr!