2013-04-08 38 views
0

我在函數中得到了兩個變量:$ x = -660px並且是固定的,$ y每調用一次函數就減少20px。第一次調用函數時,$ y = 220px。
在功能我得到了一個if else語句帶有負值和正值的JQuery if語句

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

我想要得到的是爲$ Y中,只要降低其比-660px大,然後停止。

它工作正常,直到$ y = -20px。即。 if語句'執行某些操作'直到$ y = -20px,然後停止但不執行'else'語句。

我找不出有什麼問題。這是正確的還是我的問題可能來自其他地方?


+3

你需要發佈更多的代碼。您*發佈的代碼不會顯示此問題。爲了給人們最好的機會來幫助你,我強烈建議你創建一個[JSFiddle](http://jsfiddle.net)來展示你的問題。 – 2013-04-08 13:10:33

+0

它必須執行,你可以發佈更多的代碼,看看問題是否是別的 – theshadowmonkey 2013-04-08 13:10:44

+0

你比較字符串與'px'在他們或數字?顯示更多代碼並創建一個複製問題的演示 – charlietfl 2013-04-08 13:11:49

回答

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

與像素值的工作:

$(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

+0

謝謝沉默,在'parseInt()'中加入了訣竅! – user2220785 2013-04-08 13:26:00

+0

沒問題:)/15chars – silentw 2013-04-08 13:27:08