【问题标题】:JQuery if statement with negative & positive values具有负值和正值的 JQuery if 语句
【发布时间】:2013-04-08 13:07:58
【问题描述】:

我在一个函数中有两个变量:$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”语句。

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


【问题讨论】:

  • 您需要发布更多代码。您发布的代码不会显示此问题。为了让人们尽可能有机会帮助您,我强烈建议您创建一个JSFiddle 来展示您的问题。
  • 它必须执行,您可以发布更多代码以查看问题是否是其他问题
  • 您是在比较字符串中的px 还是数字?显示更多代码并创建一个复制问题的演示
  • $x 实际上等于 -660px 还是 -660
  • @user2220785 检查我的答案

标签: jquery if-statement numbers


【解决方案1】:

不应该是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

【讨论】:

    猜你喜欢
    • 2019-01-16
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 2013-05-04
    • 2021-01-28
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多