我正在为正在构建的网页开发一个简单的“打开/关闭动画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>
因此,其背后的想法是,只要用户单击锚点,它就会运行openClose()函数。在初始页面加载时,slideOpen = 1,如果用户单击锚点,如果slideOpen = 1,则它将运行closeTab()动画函数,然后将slideOpen = 0设置。如果slideOpen = 0,则应运行openTab()动画函数并设置slideOpen = 1。
基本上:
如果选项卡是打开的,则slideOpen = 1;
如果选项卡关闭,则slideOpen = 0;
但是,我还在此功能中设置了两个警报。最初的页面加载,每次调用openClose()函数时运行。
初始页面加载时,slideOpen警报显示“ 1”。单击锚点以关闭选项卡后,openClose()函数中的slideOpen警报显示为“ 0”,选项卡成功关闭。再次单击锚点,警报将再次显示“ 0”,并且该选项卡不会重新打开。它应该显示slideOpen =“ 1”,但是由于某种原因,它不是。这就是我的问题。
提前致谢。
最佳答案
if (slideOpen = 1){
在这里,您为变量
slideOpen
分配了1,因此条件将始终为true。在两种情况下均使用
==
代替=
喜欢
if (slideOpen == 1){
关于javascript - Javascript Animate打开/关闭菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22694224/