0

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

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

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

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

我不知道它有什么问题。这是正确的还是我的问题可能来自其他地方?


4

1 回答 1

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);
    }
});

演示

使用 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);
    }
});

演示

于 2013-04-08T13:15:08.490 回答