Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法更新div样式属性_Javascript_Css - Fatal编程技术网

Javascript 无法更新div样式属性

Javascript 无法更新div样式属性,javascript,css,Javascript,Css,我正在尝试更改一些样式属性。以下是我首次指定给clickedMenuHexagonDiv的样式: clickedMenuHexagonDiv.style.MozTransform = "scale(.9999)"; clickedMenuHexagonDiv.style.width = num2px(this.width); clickedMenuHexagonDiv.style.marginRight = "3px"; clickedMenuHexagonDiv.style.position

我正在尝试更改一些样式属性。以下是我首次指定给
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;
如您所见,它只更新先前未声明的属性。没有控制台错误。另外,有点奇怪的是,
底部
右侧
被jquery animate函数更改了(我在
单击menuHexagondiv.className=“centerHexagonDiv”
,它显示的值不是
底部
右侧
的“自动”值


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

如果我发现了:我需要使用“styleFloat”和/或“cssFloat”。“float”不是css属性

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


当然,它看起来会工作->我知道,对吧?可能是因为它在
$(clickedMenuHexagonDiv.promise().done(function(){
)中。我将运行一个测试,看看会发生什么。@adeneo这不起作用;如果我去掉
$(clickedMenuHexagonDiv.promise().done(function(){}
),它不会更新任何内容(底部和右侧没有更改)。看起来我的另一个函数正在执行,而这一个函数可能值得添加您的代码,因此答案是完整的(并且将来人们更容易理解)。我认为您也可以选择自己的答案,这样问题就结束了。
clickedMenuHexagonDiv.className = "centerHexagonDiv";
clickedMenuHexagonDiv.style.bottom = "auto";
clickedMenuHexagonDiv.style.right = "auto";
clickedMenuHexagonDiv.style.styleFloat = "none";
clickedMenuHexagonDiv.style.cssFloat = "none";