我正在为正在构建的网页开发一个简单的“打开/关闭动画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/

10-12 00:06