我正在为我正在构建的网页制作一个简单的打开/关闭动画 DIV。它应该很简单,但有些事情让我挂断电话。这是我的 JS 代码:
<script>
slideOpen = 1;
alert(slideOpen);
function openClose(){
if (slideOpen = 1){
closeTab();
slideOpen = 0;
};
if (slideOpen = 0){
openTab();
slideOpen = 1;
};
function closeTab(){
$("#upcomingEvents").animate({top:"-910px"});
}
function openTab(){
$("#upcomingEvents").animate({top:"-300px"});
}
alert(slideOpen);
}
</script>
这是运行该函数的 HTML:
<a href="javascript:openClose();" style="position: absolute; bottom: 32px; right: 32px;" >Open/Close Tab</a>
因此,这背后的想法是,每当用户单击 anchor 时,它都会运行 openClose() 函数。在初始页面加载时,slideOpen = 1,如果用户单击 anchor ,如果 slideOpen = 1,它将运行 closeTab() 动画函数,然后设置 slideOpen = 0。如果 slideOpen = 0,openTab() 动画函数应该运行并且设置 slideOpen = 1。
基本上: 如果选项卡打开 slideOpen = 1; 如果选项卡关闭 slideOpen = 0;
但是,我在这个函数中也设置了两个警报;一个在页面加载时启动,一个在每次调用 openClose() 函数时运行。
在初始页面加载时,slideOpen 警报显示“1”。单击 anchor 关闭选项卡后,openClose() 函数中的 slideOpen 警报显示“0”,选项卡成功关闭。再次单击 anchor ,警报再次显示“0”并且选项卡不会重新打开。它应该显示 slideOpen = "1",但由于某些原因不是。这就是我的问题。
提前致谢。
最佳答案
if (slideOpen = 1){
此处您将 1 分配给变量 slideOpen
,因此条件将始终计算为真。
对这两种情况都使用==
而不是=
喜欢
if (slideOpen == 1){
关于Javascript 动画打开/关闭菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694224/