很抱歉打扰你。我在使用简单的javascript if _ else语句时遇到了一些麻烦。
我有一个按钮,如果你将#everythingelse
推向左侧,则单击它。如果再次单击它,它应该将#everythingelse
带回原始位置,但在第二次单击时不会执行任何操作。
<script type="text/javascript">
var inout = "0";
$("#mobilemenubutton").click(function () {
if (inout = "0") {
$("#everythingelse").animate({
left: '70%'
}, 500);
var inout = "1";
} else {
$("#everythingelse").animate({
left: '0%'
}, 500);
var inout = "0";
}
});
</script>
答案 0 :(得分:3)
改变你的代码为,在if语句中你需要使用double ==这意味着它等于那个。
<script type="text/javascript">
var inout="0";
$("#mobilemenubutton").click(function () {
if(inout=="0"){
$("#everythingelse").animate({ left: '70%' }, 500);
inout="1"; // removed "var"
}else{
$("#everythingelse").animate({ left: '0%' }, 500);
inout="0"; // removed "var"
}
});
</script>
但我建议你去做。您可以使用jQuery的data()来跟踪状态而不是变量。
$('#mobilemenubutton').on('click', function(){
$("#everythingelse").animate({ left : !$(this).data('state') ? '70%' : '0%' }, 500);
$("#everythingelse").data('state', !$(this).data('state'));
});
答案 1 :(得分:1)
您的if
语句使用=
代替==
进行比较。您目前的方式每次都会将inout
设置为"0"
。
您还使用inout
在if
语句中再次定义var
变量两次。
试试这个(见变更评论):
<script type="text/javascript">
var inout="0";
$("#mobilemenubutton").click(function () {
if(inout=="0"){ //changed '=' to '=='
$("#everythingelse").animate({ left: '70%' }, 500);
inout="1"; //removed 'var'
}else{
$("#everythingelse").animate({ left: '0%' }, 500);
inout="0"; //removed 'var'
}
});
</script>
答案 2 :(得分:1)
你的错了。每次运行代码时,都将其设置为0
if(inout="0")
应为if(inout=="0")
或更好if(inout==="0")
还删除函数
中的var