JQuery if if with negative&正面价值观

时间:2013-04-08 13:07:59

标签: jquery if-statement numbers

我在一个函数中得到两个变量:$ x = -660px并且是固定的,$ y每次调用该函数时减少20px。第一次调用函数时$ y = 220px。
在函数中我得到了if else语句

    if($y > $x){
    //do something
    }else{
    //do nothing
    }

我想要得到的是,只要它大于-660px就会减少$ y然后停止。

它工作正常,直到$ y = -20px。即。 if语句'做某事'直到$ y = -20px然后它停止但不执行'else'语句。

我无法找出它有什么问题。这是正确的还是我的问题可能来自其他地方?


1 个答案:

答案 0 :(得分:2)

不应该是if($y < $x)因为它们是负值吗?

这有效:

$(function(){
    var x=0,y=-660;
    var inter = setInterval(function(){
        if(y < x)
            subtract();
        else
            clearInterval(inter);
    },200);
    function subtract(){
        x = x-20;
        $('body').append('<br />x='+x+' y='+y);
    }
});

DEMO

使用px值:

$(function(){
    var x="0px",y="-660px";
    var inter = setInterval(function(){
        if(parseInt(y) < parseInt(x))
            subtract();
        else
            clearInterval(inter);
    },200);
    function subtract(){
        x = (parseInt(x)-20)+"px";
        $('body').append('<br />x='+x+' y='+y);
    }
});

DEMO