JS利用函数修改全局变量

2022-05-10 16:27:23 浏览数 (1)

现在博客系统的评论遇到一个问题,用户点击“最后一页”链接之后就自动调取最后一页的资料来显示。

我是将当前页用一个全局变量存储。同时在“最后一页”链接里单击方法调用一个函数自动去修改页数为最后一页,然后再调用载入评论的方法。

可是我发现点击“最后一页”第一次的时候系统没反应,再点击一次就抓去最后一页的资料了!

要说全局变量没改,应该是改了,就仿佛改了页数而载入评论的方法失效了一样。

代码如下:

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

        }     }) }

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

0 人点赞