var total; //公共变量
//获取总数
function GetTotal() {
$.ajax({
url: 'webashx/newcount.ashx',
success: function (data) {
total = data;//公共变量赋值 }
});
}
//页面加载完的时候进行初始化操作
$(document).ready(function () {
GetTotal(); //异步取得总页数
alert(total);//这里获取不到上面已经赋的值,值为空 $("#pager").pager({ pagenumber: 1, pagecount: total, buttonClickCallback: PageClick }); //初始化分页导航
PageClick(1); //页面初次加载时显示第一页
});
//单节分页导航数字是执行异步加载数据
PageClick = function (pageclickednumber) {
$("#pager").pager({ pagenumber: pageclickednumber, pagecount: total, buttonClickCallback: PageClick });
$.ajax({
url: 'webashx/newsinfo.ashx',
type: 'GET',
data: { pageindex: pageclickednumber },
success: function (data) {
$("#result")(data);
}
});
}
这个是分页代码,为什么公共的变量值不一样呢。在 GetTotal() 方法中已经赋值了,可是在下面却得不到值?
------解决方案--------------------------------------------------------
如果上面那个赋值的方法是异步去调用的,那有可能是alert的时候后台的结果还没有return回来。
你在success里面加个debugger调试一下,看是不是先alert后进到success的function里面
------解决方案--------------------------------------------------------
检查一下data的返回值是什么?还有就是ajax默认是异步访问的,异步访问的话,可能你弹出时,尚未返回值
------解决方案--------------------------------------------------------
楼上分析的对 你在你的ajax里面写上不是异步调用
如:
async: false,
------解决方案--------------------------------------------------------
你为什么不在ajax的回调函数里写你后续的一些操作呢?
既然是异步执行,一定是在你弹出信息后才执行完的
------解决方案--------------------------------------------------------