简单的javascript条件不起作用

时间:2013-08-13 14:54:23

标签: javascript jquery if-statement

很抱歉打扰你。我在使用简单的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>

3 个答案:

答案 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"

您还使用inoutif语句中再次定义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