我试过调试这个,但我只是不明白为什么每当我将它递增1时变量disp就会以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');
}
});
你会看到我有警报(disp),用于调试目的。
答案 0 :(得分:5)
重新声明disp
。你宣布两次:
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++
答案 1 :(得分:0)
看起来你在函数中声明了一个新的disp变量,即使你已经在顶部的数组之后已经这样做了。摆脱var disp,只是增加或减少它。
答案 2 :(得分:0)
看起来可能是由于
var disp = disp++
尝试disp=disp+1
(不带var)。同样的减量。我认为应该解决这个问题!