我正在为我正在构建的网页开发一个简单的Open / Close Animate 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()动画函数, set slideOpen = 1。
基本上: 如果tab是打开的,则slideOpen = 1; 如果tab关闭,则slideOpen = 0;
但是,我还在此功能中设置了两个警报;页面加载时的初始值,以及每次调用openClose()函数时运行的值。
在初始页面加载时,slideOpen警告显示“1”。单击锚点以关闭选项卡后,openClose()函数中的slideOpen警报显示“0”并且选项卡成功关闭。再次单击锚点,警报再次显示“0”,并且选项卡不会重新打开。它应该显示slideOpen =“1”,但由于某种原因它不是。这就是我的问题。
提前致谢。
答案 0 :(得分:0)
if (slideOpen = 1){
您在此处为变量slideOpen
分配1,因此条件将始终评估为真。
使用==
代替=
两种情况
像
if (slideOpen == 1){