Dynamisches hinzufügen von DOM-Elementen
DaRealMatrix
- javascript
Hallo liebe Community,
ich habe ein kleines logisches Problem mit dem dynamischen hinzufügen von DOM Elementen per JS. Zunächst einmal habe ich den folgenden Codeblock:
function addProductToShoppingWindow(product) {
var productContainer = $get("product_layer");
if (productContainer) {
var productElem = document.createElement("img");
var newStyleDefinition = "position: absolute; z-index: 10; top: " + product.ImagePosition.Y + "; left: " + product.ImagePosition.X + ";";
// Label1
productElem.setAttribute("src", "../" + product.ImagePath);
productElem.setAttribute("height", product.ImageSize.Height);
productElem.setAttribute("width", product.ImageSize.Width);
productElem.setAttribute("style", newStyleDefinition);
// Label2
productContainer.appendChild(productElem);
}
}
Wenn ich nun nacheinander mehrere (gleich aufgebaute) Strukturen an die Funktion übergebe, habe ich beim ersten Aufruf der Funktion an Label1 und Label2 den (korrekten) Wert "position: absolute; z-index: 10; top: Ypx; left: Xpx;" stehen. Sobald ich allerdings nun weitere Aufrufe an die Methode (mit weiteren Produkten) mache, steht an der Position von Label1 weiterhin der oben stehende Code in newStyleDefinition, aber nach dem setzen über productElem.setAttribute("style", newStyleDefinition); steht nun in der Styledefinition nur noch "position: absolute; z-index: 10;“. Kann mir einer von euch dieses Phänomen erklären? Ich habe echt keinen Schimmer mehr :(
Vielen Dank im Voraus.
Viele Grüße,
DaRealMatrix
Hi,
[...] nach dem setzen über productElem.setAttribute("style", newStyleDefinition); steht nun in der Styledefinition nur noch "position: absolute; z-index: 10;“. Kann mir einer von euch dieses Phänomen erklären?
ja: product.ImagePosition.X und product.ImagePosition.Y enthalten keine gültigen Längenwerte.
Cheatah
Hey
ja: product.ImagePosition.X und product.ImagePosition.Y enthalten keine gültigen Längenwerte.
ich habe nochmal nachgeguckt und mir die Werte für X und Y ebenfalls ausgeben lassen. Das sind gültige Zahlen im Bereich (0-10). Mit der Position (0,0) klappt es ohne Probleme. Alles andere (sei es (1,1) oder ähnliches) bewirkt den oben beschriebenen Fehler. Die Werte überschreiten nicht einmal den div. Diesen habe ich nämlich mit
<div id="product_layer" style="z-index: 2; position: relative; top: 0px; left: 0px; width: 800px; height: 600px;" />
beschrieben. Hättest du sonst noch eine Idee?
Viele Grüße,
DaRealMatrix
Hi!
ja: product.ImagePosition.X und product.ImagePosition.Y enthalten keine gültigen Längenwerte.
ich habe nochmal nachgeguckt und mir die Werte für X und Y ebenfalls ausgeben lassen. Das sind gültige Zahlen im Bereich (0-10).
Da fehlt aber eine gültige Einheit.
off:PP
[latex]Mae govannen![/latex]
ja: product.ImagePosition.X und product.ImagePosition.Y enthalten keine gültigen Längenwerte.
ich habe nochmal nachgeguckt und mir die Werte für X und Y ebenfalls ausgeben lassen. Das sind gültige Zahlen im Bereich (0-10).
Eben. Gültige Zahlen, keine gültigen CSS-Längenwerte.
Cü,
Kai
Hey,
ah, verd... das habe ich voll übersehen. 1000 Dank.
Viele Grüße,
DaRealMatrix