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

Javascript
IE与firefox下Dhtml的一些区别小结
jQuery Selectors(选择器)的使用(一、基本篇)
jQuery Selectors(选择器)的使用(二、层次篇)
jQuery 跨域访问问题解决方法
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
javascript 面向对象全新理练之数据的封装
javascript 面向对象全新理练之继承与多态
javascript 面向对象全新理练之原型继承
JavaScript 生成随机数并自动大小排序
JavaScript利用split函数按规定截取字符串(获取邮箱用户名)
JavaScript 双级下拉菜单实现代码
JavaScript split()使用方法与示例
33种Javascript 表格排序控件收集
js 屏蔽鼠标右键脚本附破解方法
javascript json 新手入门文档
jQuery Selectors(选择器)的使用(四-五、内容篇&可见性篇)
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
javascript 汉字转拼音实现代码
javascript 跳转代码集合
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 279 ::
收藏到网摘: 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");
}
}
})
}

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