Javascript else条件未触发
我正在尝试做一个基本的javascript/jquery动画。基本上,在普通视图下隐藏的div应该在单击按钮时进入视图 我遇到的问题是条件(if-else语句) 这是我正在使用的代码Javascript else条件未触发,javascript,jquery,Javascript,Jquery,我正在尝试做一个基本的javascript/jquery动画。基本上,在普通视图下隐藏的div应该在单击按钮时进入视图 我遇到的问题是条件(if-else语句) 这是我正在使用的代码 $(document).ready(function () { animationClick('#animateThis', '#someElement', '#startHere'); }); function animationClick(element, secondElement, element
$(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语句……啊,现在没事了。我把剧本的两个版本弄混了。然而,你的建议解决了我的问题,对我帮助很大。我非常感谢你!