无法更新div样式属性

时间:2014-03-29 18:46:41

标签: javascript css

我试图更改几个样式属性。这是我第一次分配给clickedMenuHexagonDiv的样式:

clickedMenuHexagonDiv.style.MozTransform = "scale(.9999)";
clickedMenuHexagonDiv.style.width = num2px(this.width);
clickedMenuHexagonDiv.style.marginRight = "3px";
clickedMenuHexagonDiv.style.position = "relative";
clickedMenuHexagonDiv.style.zIndex = "5";
clickedMenuHexagonDiv.style.styleFloat = "right";
clickedMenuHexagonDiv.style.cssFloat = "right";

以下是我想要更改的属性的代码:

clickedMenuHexagonDiv.className = "centerHexagonDiv";
clickedMenuHexagonDiv.style.bottom = "auto";
clickedMenuHexagonDiv.style.right = "auto";
clickedMenuHexagonDiv.style.float = "none";
alert("clickedMenuHexagonDiv: " + clickedMenuHexagonDiv.style.cssText);

以下是警报的输出:

clickedMenuHexagonDiv: transform: scale(0.9999); width: 80px; margin-right: 3px; position: relative; z-index: 5; float: right; right: auto; bottom: auto;

如您所见,它只更新之前未声明的属性。没有控制台错误。另外,有点奇怪的是,bottomright被jquery animate函数改变了(我在clickedMenuHexagonDiv.className = "centerHexagonDiv";之前放了一个警告,它显示的值除了" auto" bottomright

我发现如果我在更改样式属性之前插入clickedMenuHexagonDiv.style.cssText = "",我可以解决这个问题,但是我必须再次声明所有属性。我宁愿尝试理解为什么我无法更新特定属性。

1 个答案:

答案 0 :(得分:1)

如果弄清楚:我需要使用“styleFloat”和/或“cssFloat”。 “float”不是css属性。

这是更新的代码(只有第二部分需要更新):

clickedMenuHexagonDiv.className = "centerHexagonDiv";
clickedMenuHexagonDiv.style.bottom = "auto";
clickedMenuHexagonDiv.style.right = "auto";
clickedMenuHexagonDiv.style.styleFloat = "none";
clickedMenuHexagonDiv.style.cssFloat = "none";