Ungültiges Argument?
Dreadnaught
- javascript
0 WauWau0 Dreadnaught0 WauWau0 Dreadnaught0 WauWau0 Axel Richter0 WauWau
0 Tobias Kloth
var obj = document.getElementById("rahmen");
var menu = document.getElementById("menu");
menu.style.left = obj.style.left + obj.style.width + 20;
Fehlermeldung: "Ungültiges Argument."
obj.style.left und obj.style.width sind gesetzt. Aber wieso kriege ich diese Fehlermeldung? Ich dachte JavaScript ignoriert verschiedene Datentypen und managed das selbstständig.
(char)((int)obj.style.left + (int)obj.style.width + 20)
Wie kann ich das in JS machen? Oder denke ich falsch bei dem Problem?
Hallo Dreadnaught,
var obj = document.getElementById("rahmen");
var menu = document.getElementById("menu");
existieren die beiden so bereits wenn der interpreter an dieser stelle angekommen ist?
Fehlermeldung: "Ungültiges Argument."
Argumentiere schlicht weg demnächst einfach mal besser.
obj.style.left und obj.style.width sind gesetzt. Aber wieso kriege ich diese Fehlermeldung? Ich dachte JavaScript ignoriert verschiedene Datentypen und managed das selbstständig.
(char)((int)obj.style.left + (int)obj.style.width + 20)
Ich denke, hierbei wird nicht das problem liegen. Fehler wird höchstwahrscheinlich sein:
- es gibt zur laufzeit noch kein #rahmen und #menu, z.B. wenn du
so was schreibst:
<html><head>
<script>
alert(document.getElementbyId("rahmen").firstChild.nodeValue);
</script></head><body><div id="rahmen">HALLO!</div></body></html>
hier darfst du den script das erst machen lassen, wenn das dokument geladen ist, sprich <body onload=""> verwenden.
und / oder
- deinobjekt.style.blabliblo ist nicht gesetzt...
WauWau
<div id="rahmen" align="center"></div>
<div id="menu" align="center"></div>
So sind die Sachen im Quelltext erstellt, bevor überhaupt der Script Bereich abgearbeitet wird. (Ich hab die Stylesheets und den Inhalt mal rausgenommen.)
Das style.left und style.top des Rahmens sind auf jeden Fall gesetzt bevor diese abgefragt werden. Den gesamtem Quellcode zu erläutern würde den Rahmen sprengen.
Was mich halt nur wundert: Die Eigenschaften (eigentlich nur numerische Werte) lassen sich nicht addieren bzw zuweisen. Separat ja, aber nicht zusammen.
Hallo Dreadnaught,
Was mich halt nur wundert: Die Eigenschaften (eigentlich nur numerische Werte) lassen sich nicht addieren bzw zuweisen. Separat ja, aber nicht zusammen.
ich könnte mir auch vorstellen, dass er bei ...style.width "px" hinten dran hängt, also z.B. "20px" ausgibt, sicher bin ich mir aber net und glaube es auch nicht so richtig...
WauWau
Ich muss dir sagen: Du hast Recht :-)
Danke für die Hilfe WauWau :-)
Hallo Dreadnaught,
Ich muss dir sagen: Du hast Recht :-)
echt? Und was willst du nun machen?
Ein Vorschlag wäre von mir, beispielsweise den gewonnenen String um 2 Zeichen von hinten zu kürzen, dann müsste das "px" bzw. die Einheit weg sein. Ob ein Leerzeichen dazwischen ist - keine Ahnung. imho Ist es sowieso immer Popelgefriemel ;-)
WauWau
Hallo WauWau,
echt? Und was willst du nun machen?
http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int
viele Grüße
Axel
Hallo Axel,
Hallo WauWau,
echt? Und was willst du nun machen?
http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int
gute idee, daran habe ich net gedacht
WauWau
Hallo,
<div id="rahmen" align="center"></div>
warum verwendest du das align-Attribut? - dafür gibt es doch css ...
Das style.left und style.top des Rahmens sind auf jeden Fall gesetzt bevor diese abgefragt werden.
hast du dir die Werte mal ausgeben lassen?
Den gesamtem Quellcode zu erläutern würde den Rahmen sprengen.
ohne den Quelltext wird das Ganze aber eine ziemlich sinnlose Raterrei (nein, nicht das ganze Script hier posten - stell am Besten eine Testseit online).
Was mich halt nur wundert: Die Eigenschaften (eigentlich nur numerische Werte) lassen sich nicht addieren bzw zuweisen. Separat ja, aber nicht zusammen.
afaik steht in den Werten für top, left u.ä. immer eine Einheit hintendran - die will also vorher noch abgeschnitten werden.
Grüße aus Nürnberg
Tobias