0

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

3 回答 3

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'));
});
于 2013-08-13T14:56:07.647 回答
1

您的if陈述使用=而不是==用于比较。您当前拥有的方式将设置inout"0"每次。

您还在使用语句的语句中inout再次定义变量两次。ifvar

试试这个(见评论的变化):

<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>
于 2013-08-13T14:56:29.110 回答
1

你的如果是错误的。每次运行代码时,将其设置为 0 if(inout="0")应该if(inout=="0")甚至更好if(inout==="0")

也删除var函数内部

于 2013-08-13T14:59:31.613 回答