我正在尝试做一个基本的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")
,但事实并非如此。
有人能给我一些建议吗?我做错了什么?
答案 0 :(得分:2)
您已在第一个"click"
声明中将"elementToBeClicked"
事件绑定到if
。
在unbind
语句的末尾尝试if
,然后看看会发生什么,但通常只是为了检查else
是否正在执行,只需将警报从click
中删除{1}}事件。
答案 1 :(得分:1)
你的变量“state”是函数的本地变量。 这就是为什么在函数的后续调用中它始终为0。 在函数外部初始化变量。
答案 2 :(得分:0)
我认为问题是当你在if语句中比较变量和零时你应该使用三个===。像这样:if(state === 0)