• JS利用函数修改全局变量


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

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

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

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

    代码如下:

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

            }
        })
    }

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




    -----------------------------------------------------------------------------------------------------------------------------
    SAP ALL进行时...!
    注:本文系原创,如要转载请务必保持原文一致并注明作者(SAP梦心)及出处(博客地址:http://www.cnblogs.com/saper/),违者将会被追究相关责任,谢谢!
  • 相关阅读:
    SDNU 1219.sign up problem
    SDNU 1232.A*B Problem(高精度)
    Go操作MySQL
    BootStrap jQuery 在线cdn
    Go语言标准库之http/template
    Go语言基础之net/http
    Go语言基础之网络编程
    Go语言基础之单元测试
    Go语言基础之rand(随机数)包
    Go语言基础之并发
  • 原文地址:https://www.cnblogs.com/saper/p/1577305.html
Copyright © 2020-2023  润新知