当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript(jquery)利用函数修改全局变量的代码

Javascript
JavaScript 自动完成脚本整理(33个)
7个Javascript地图脚本整理
JavaScript 事件记录使用说明
Javascript remove 自定义数组删除方法
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Jquery Ajax.ashx 高效分页实现代码
extjs 学习笔记 四 带分页的grid
javascript void(0)的妙用
用Javascript 编写可以缓慢弹出收缩的层
再谈ie和firefox下的document.all属性
JavaScript 常用函数库详解
JS 截取字符串substr 和 substring方法的区别
Domino中运用jQuery读取视图内容的方法
Js+CSS 文字渐隐渐现显示
Javascript 小写字母依次变为大写
JavaScript 炫彩的文字
javascript 洒脱飘动的文字
JavaScript 平滑文字闪烁
仿打字特效的JS逐字出现的信息文字
JavaScript数组应用 可依次读取的公告栏文字

Javascript 中的 javascript(jquery)利用函数修改全局变量的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 366 ::
收藏到网摘: n/a

现在博客系统的评论遇到一个问题,用户点击“最后一页”链接之后就自动调取最后一页的资料来显示。 我是将当前页用一个全局变量存储。同时在“最后一页”链接里单击方法调用一个函数自动去修改页数为最后一页,然后再调用载入评论的方法。
可是我发现点击“最后一页”第一次的时候系统没反应,再点击一次就抓去最后一页的资料了!
要说全局变量没改,应该是改了,就仿佛改了页数而载入评论的方法失效了一样。
代码如下:
复制代码 代码如下:

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");
}
}
})
}

第一个代码的问题各位高手能否解释一下??谢谢!