【发布时间】:2015-01-08 19:34:55
【问题描述】:
我有以下代码:
<body onload="reset()">
<div id="menu" class="menu"></div>
<div id="container">
<button onclick="openMenu()">Open Menu</button>
</div>
<script type="text/javascript">
function reset(){
var flag = true;
document.getElementById("menu").innerHTML = flag;
}
function openMenu(){
if (flag = true) {
var menu = document.getElementById("menu");
menu.className = 'menu2';
flag = false;
}else {
var menu = document.getElementById("menu");
menu.className = 'menu';
flag = true;
};
document.getElementById("menu").innerHTML = flag;
}
</script>
</body>
css 是:
#menu{
width: 100%;
background-color: #232323;
}
.menu{
height: 400px;
}
.menu2{
height: 600px;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
}
问题是,当我第一次按下按钮时,div 将其高度更改为 600px,就像它应该做的那样。 但是我第二次按下它(此时“标志”变量为假),div 不会返回到“菜单”类,将其高度更改回 400 像素。 我似乎无法找到发生这种情况的原因。
【问题讨论】:
-
if (flag = true)不是比较! -
if (flag = true) {
-
另外,你是不是凭空提取了一个名为
flag的变量?还是在其他地方初始化? -
@DrewKennedy 我的错,是的,页面加载时“标志”被声明为真。
标签: javascript html css button