Javascript Animate打开/关闭菜单

时间:2014-03-27 16:56:01

标签: javascript jquery html css animation

我正在为我正在构建的网页开发一个简单的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”,但由于某种原因它不是。这就是我的问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

if (slideOpen = 1){

您在此处为变量slideOpen分配1,因此条件将始终评估为真。

使用==代替=两种情况

if (slideOpen == 1){