我试图更改几个样式属性。这是我第一次分配给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;
如您所见,它只更新之前未声明的属性。没有控制台错误。另外,有点奇怪的是,bottom
和right
被jquery animate函数改变了(我在clickedMenuHexagonDiv.className = "centerHexagonDiv";
之前放了一个警告,它显示的值除了" auto" bottom
和right
。
我发现如果我在更改样式属性之前插入clickedMenuHexagonDiv.style.cssText = ""
,我可以解决这个问题,但是我必须再次声明所有属性。我宁愿尝试理解为什么我无法更新特定属性。
答案 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";