javascript(jquery)利用函數修改全域變數的代碼_javascript技巧

來源:互聯網
上載者:User
我是將當前頁用一個全域變數儲存。同時在“最後一頁”連結裡單擊方法調用一個函數自動去修改頁數為最後一頁,然後再調用載入評論的方法。
可是我發現點擊“最後一頁”第一次的時候系統沒反應,再點擊一次就抓去最後一頁的資料了!
要說全域變數沒改,應該是改了,就彷彿改了頁數而載入評論的方法失效了一樣。
代碼如下:
複製代碼 代碼如下:

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 += "<p id='xuhao'>序號:" + n.序號 + "發表日期" + n.日期 + "使用者名稱:" + n.操作員 + "</p>";
str += "<p id='content'>內容:" + n.事件 + "</p>";
});
$("#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 += "<p id='xuhao'>序號:" + n.序號 + "發表日期" + n.日期 + "使用者名稱:" + n.操作員 + "</p>";
str += "<p id='content'>內容:" + n.事件 + "</p>";
});
$("#guest").append(str);
$("#loading").hide();
}
else {
alert("0");
}
}
})
}

第一個代碼的問題各位高手能否解釋一下??謝謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.