AjAX调用和setInterval

时间:2011-03-04 16:32:36

标签: jquery ajax pagination

我正在尝试添加分页。 我用

    $(document).ready(function() {
var pageNum = 1;
$(".paginationing").click(function(){
pageNum = $(this).attr("id");
});


    setInterval("ajaxd("+pageNum+")",5000);

});

function ajaxd(pageNum) { 


    var thisuser = $("#thisusern").text();
  $.ajax({
   type: "GET",
   url: "newstitle.php",
   data: "user="+thisuser+"&page="+pageNum,
   success: function(msg){
     $("#edix").html(msg);
   }
 });
} 

发送页码。但是它只发送页码1,即使我点击了页码。 错误在哪里?如何使用setInterval实现AJAX分页,每隔5秒调用一次页面?

1 个答案:

答案 0 :(得分:2)

我不确定为什么使用setInterval进行分页而不是在click事件处理程序中调用ajaxd函数。 我会这样做:

$(document).ready(function() {
    var pageNum = 1;
    $(".paginationing").click(function() {
                pageNum = $(this).attr("id");
                ajaxd(pageNum);
    });
});

function ajaxd(pgNo) {
        var thisuser = $("#thisusern").text();
    $.ajax({
        type: "GET",
        url: "newstitle.php",
        data: "user=" + thisuser + "&page=" + pgNo,
        success: function(msg) {
            $("#edix").html(msg);
        }
    });
}

如果您仍想使用setInterval,请尝试:

   var pageNum = 1;

    $(document).ready(function() {

        $(".paginationing").click(function() {
            pageNum = $(this).attr("id");
        });
        setInterval(ajaxd, 5000);
    });

    function ajaxd() {
            var pgNo = pageNum;
        var thisuser = $("#thisusern").text();
        $.ajax({
            type: "GET",
            url: "newstitle.php",
            data: "user=" + thisuser + "&page=" + pgNo,
            success: function(msg) {
                $("#edix").html(msg);
            }
        });
    }

<强> P.S: 另请注意,HTML元素的有效ID不应以数字开头,但我认为您依赖于该数字。我宁愿建议您生成类似“pg-n”的ID,其中n是数字,在点击事件中,您可以使用

获取页码
pageNum = $(this).attr("id").replace(/[^0-9]/g, "");