Javascript其他条件不会触发

时间:2013-03-16 20:41:33

标签: javascript jquery

我正在尝试做一个基本的javascript / jquery动画。基本上,单击按钮时,应隐藏在普通视图下隐藏的div。

我遇到的问题是条件(if else声明)。

以下是我正在使用的代码。

$(document).ready(function () {
    animationClick('#animateThis', '#someElement', '#startHere');
});

function animationClick(element, secondElement, elementToBeClicked) {
    element = $(element);
    elementToBeClicked = $(elementToBeClicked);
    secondElement = $(secondElement);
    var state = 0;
    var containerWidth = $('#container').width();
    elementToBeClicked.on("click", function () {
        if(state == 0) {
            secondElement.animate({
                top: '27%',
            }, 500);
            element.animate({
                left: '0%',
            }, 500);
            elementToBeClicked.html("Hide");
            state = 1;
        } else {
            alert('hehehe');
        }
    })
};

所以,基本上,这就是发生的事情。整个功能被放入document.ready。当我单击按钮(此函数绑定到该按钮)时,if语句返回true,代码将被执行。它还将状态设置为1

状态设置为1后,else if语句应该生效并显示alert("hehehe"),但事实并非如此。

有人能给我一些建议吗?我做错了什么?

3 个答案:

答案 0 :(得分:2)

您已在第一个"click"声明中将"elementToBeClicked"事件绑定到if。 在unbind语句的末尾尝试if,然后看看会发生什么,但通常只是为了检查else是否正在执行,只需将警报从click中删除{1}}事件。

答案 1 :(得分:1)

你的变量“state”是函数的本地变量。 这就是为什么在函数的后续调用中它始终为0。 在函数外部初始化变量。

答案 2 :(得分:0)

我认为问题是当你在if语句中比较变量和零时你应该使用三个===。像这样:if(state === 0)