JAvascript(jquery)関数によるグローバル変数のコードの変更

4726 ワード

現在のページをグローバル変数で格納します.同時に、「≪最後のページ|Last Page|emdw≫」リンクで「≪メソッド|Method|emdw≫」をクリックして関数を呼び出し、ページ数を最後のページに自動的に変更し、コメントをロードするメソッドを呼び出します.
しかし、私は「最後のページ」をクリックして初めてシステムが反応しなかったことに気づいて、もう一度クリックして最後のページの資料を捕まえました!
グローバル変数が変更されていないといえば、ページ数を変更してコメントをロードする方法が無効になったように変更されたはずです.
コードは次のとおりです.
 
  
var page = 1; //
var str = "";
$(document).ready(function() {
lostguest(); //
$("a#first").click(function() {
page = 1;
lostguest();
});
$("a#last").click(function() {
if (page > 1) {
--page;
lostguest();
}
else {
page = 1;
alert(" !")
}
})
$("a#next").click(function() {
if (page < pagecount) {
++page;
lostguest();
}
else {
alert(" !");
}
})
$("a#all").click(function() {
getpagecount();
lostguest();
});
})
var getpagecount = function() {
var type = "GetPageCount";
$.ajax({
url: 'GetCount.ashx?type=' + type,
type: "GET",
dataType: 'text',
beforeSend: function() {
},
error: function() {
alert(' ');
},
success: function(count) {
pages = Number(count);
}
})
}
var lostguest = function() {
$.ajax({
url: 'SqlHelper.ashx?page=' + page,
type: "GET",
dataType: 'json',
beforeSend: function() {
$("#loading").show();
},
error: function() {
alert(' ');
},
success: function(msg) {
$("#guest").empty();
if (msg != "0") {
var data = msg.log;
str = "";
$.each(data, function(i, n) {
str += "

:" + n. + " " + n. + " :" + n. + "

";
str += "

:" + n. + "

";
});
$("#guest").append(str);
$("#loading").hide();
}
else {
alert("0");
}
}
})
}

何が起こっているのか分からない.皆さん、説明していただけませんか.
PS:その後、融通のきく方法を探して、この効果を実現しました.コードは次のとおりです.
 
  
var page = 1;
var str = "";
var pagecount; //
$(document).ready(function() {
getpagecount(); //
lostguest();
$("a#first").click(function() {
page = 1;
lostguest();
});
$("a#last").click(function() {
if (page > 1) {
--page;
lostguest();
}
else {
page = 1;
alert(" !")
}
})
$("a#next").click(function() {
if (page < pagecount) {
++page;
lostguest();
}
else {
alert(" !");
}
})
$("a#all").click(function() {
page = pagecount; //
lostguest();
});
})
var getpagecount = function() {
var type = "GetPageCount";
$.ajax({
url: 'GetCount.ashx?type=' + type,
type: "GET",
dataType: 'text',
beforeSend: function() {
},
error: function() {
alert(' ');
},
success: function(count) {
pagecount = Number(count); //
}
})
}
var lostguest = function() {
$.ajax({
url: 'SqlHelper.ashx?page=' + page,
type: "GET",
dataType: 'json',
beforeSend: function() {
$("#loading").show();
},
error: function() {
alert(' ');
},
success: function(msg) {
$("#guest").empty();
if (msg != "0") {
var data = msg.log;
str = "";
$.each(data, function(i, n) {
str += "

:" + n. + " " + n. + " :" + n. + "

";
str += "

:" + n. + "

";
});
$("#guest").append(str);
$("#loading").hide();
}
else {
alert("0");
}
}
})
}

最初のコードの問題を皆さんは説明していただけませんか?ありがとう!