2013-10-25 51 views
0

在JavaScript結果的整數我試圖調試,但我就是不明白,爲什麼變量DISP收益爲NaN的,每當我一個加一。如果任何人可以闡明爲什麼會發生這種情況,我會感激十倍。遞增NaN的

var votePages = new Array(); 
votePages[0] = "http://minecraftservers.org/vote/100924"; 
votePages[1] = "http://www.planetminecraft.com/server/revolutionarycraft---ssdfactionsecosurvivalgrief/vote/"; 
votePages[2] = "http://minecraftservers.net/server/66267/vote/"; 
votePages[3] = "http://mineservers.com/server/11885/vote"; 
votePages[4] = "https://minestatus.net/92187-revolutionary-craft/vote"; 
var disp = 0; 

$("#dispVotePage").attr("src", votePages[disp]); 

$(document).on('click', '#next', function(){ 
    $("#dispVotePage").attr("src", ''); 
    var disp = disp++; 
    alert(disp); 
    $("#dispVotePage").attr("src", votePages[disp]); 
    if (disp !== 0) { 
     $("#previous").css('display', 'block'); 
    } 
}); 

$(document).on('click', '#previous', function(){ 
    $("#dispVotePage").attr("src", ''); 
    var disp = disp--; 
    $("#dispVotePage").attr("src", votePages[disp]); 
    if (disp === 0) { 
     $("#previous").css('display', 'none'); 
    } 
}); 

你會看到我在那裏有alert(disp),它用於調試目的。的disp

+0

var disp = disp ++;使用不同的變量名稱。 – Akshay

回答

4

重新申報。你是兩次宣佈它:

var disp = 0;     //Initial Declaration (Global) 

... <snip> ... 

$(document).on('click', '#next', function(){ 
    $("#dispVotePage").attr("src", ''); 
    var disp = disp++;   //Re-declaration. Declares `disp` as a new local variable. 
    alert(disp); 
    $("#dispVotePage").attr("src", votePages[disp]); 
    if (disp !== 0) { 
     $("#previous").css('display', 'block'); 
    } 
}); 

解決方法:使用全局disp,不要再次聲明。只需使用disp++

+0

是的,'undefined ++'是'NaN'。 – bfavaretto

+0

disp = disp ++ does not work要麼它只是需要顯示+但是,謝謝你,+ 1'd – George

+0

@George:好點!更新了答案。 'disp = disp ++'是後增量,因此應用於'disp'的值是'disp'的未增量值。 (PS:請將此帖標記爲「答案」,如果您滿意) –

0

看起來你是在聲明的功能的新的DISP變量,即使你有你的陣列上方後已經這樣做了。擺脫var disp,只是增加或減少它。

0

看起來像它可能是由於 var disp = disp++ 嘗試disp=disp+1(沒有變種),而不是。對於減量也是類似的。我認爲它應該解決這個問題!