0

我正在尝试做一个基本的 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"),但事实并非如此。

谁能给我一些建议?我究竟做错了什么 ?

4

3 回答 3

2

您已经在第一条语句中绑定了一个"click"事件。在语句末尾尝试它,然后看看会发生什么,但通常为了只检查是否正在执行,只需将警报放在事件之外。"elementToBeClicked"ifunbindifelseclick

于 2013-03-16T20:47:10.073 回答
1

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

于 2013-03-16T20:54:56.143 回答
0

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

于 2013-03-16T20:52:34.673 回答