Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript else条件未触发_Javascript_Jquery - Fatal编程技术网

Javascript else条件未触发

Javascript else条件未触发,javascript,jquery,Javascript,Jquery,我正在尝试做一个基本的javascript/jquery动画。基本上,在普通视图下隐藏的div应该在单击按钮时进入视图 我遇到的问题是条件(if-else语句) 这是我正在使用的代码 $(document).ready(function () { animationClick('#animateThis', '#someElement', '#startHere'); }); function animationClick(element, secondElement, element

我正在尝试做一个基本的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
语句应开始运行并显示
警报(“嘿嘿”)
,但它没有


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

您已经在第一个
if
语句中将
单击事件绑定到
“elementToBeClicked”

尝试在
if
语句的末尾将其解除绑定,然后查看发生了什么,但通常为了只检查
else
是否正在执行,只需将警报从
click
事件中释放。

您已经将
click“
事件绑定到
elementtobicked”
在第一个
if
语句中。
尝试在
if
语句的末尾将其解除绑定,然后查看发生了什么,但一般来说,为了只检查
else
是否正在执行,只需在
click
事件中发出警报。

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

我认为问题在于,在if语句中比较变量和零时,应该使用三个===。如下所示:如果(state==0)

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

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

函数必须为function@Sushil你这是什么意思?函数的f应该是小写的-是的,在原始文档中是f。我在这里粘贴了整个函数,但是第一个字母被省略了,所以我不小心把它变成了大写字母。函数必须是function@Sushil你这是什么意思?函数的f应该是小写的-是的,在原始文档中是f。我在这里粘贴了整个函数,但是第一个字母被省略了,所以我不小心把它变成了大写字母。修复了它。仍然不起作用。控制台中没有错误。我注意到在第一次点击之后,每次点击都会再次执行if语句……啊,现在没事了。我把剧本的两个版本弄混了。然而,你的建议解决了我的问题,对我帮助很大。我非常感谢你!修好了。仍然不起作用。控制台中没有错误。我注意到在第一次点击之后,每次点击都会再次执行if语句……啊,现在没事了。我把剧本的两个版本弄混了。然而,你的建议解决了我的问题,对我帮助很大。我非常感谢你!