首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery促进“加载更多”分页的最好方法是什么?

使用jQuery促进“加载更多”分页的最好方法是什么?
EN

Stack Overflow用户
提问于 2011-01-24 07:32:08
回答 2查看 5.1K关注 0票数 2

我在页面上显示搜索结果列表。在最底部我想放一个“加载更多”的链接,将更多的结果追加到现有的页面上,并改变“加载更多”链接的参数到下一页,这样,如果用户点击它,下一页将被追加到页面。如果在加载结果时出现“请稍候”或一些消息,也会很好。

使用jQuery实现这一点的最常用和最实用的方法是什么?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-24 07:47:50

我使用类似于下面的内容。这是对我的工作解决方案的简化,省略了不相关的部分。希望这篇文章能帮助你入门:

代码语言:javascript
复制
function loadMore(pageNo) {
    $("#loading").html('Loading...').show();
    var url = '/foo/';
    $.get(url, {pageNo: pageNo}, function(response) {
        $("#results").append(response);
        $("#loading").hide();
    });
}

$(document).ready(function() {
    var currPage = 1;
    $("a.next").click(function() {
        loadMore(++currPage);
    });
});

<a class="next">More results</a>
票数 5
EN

Stack Overflow用户

发布于 2011-01-24 07:39:24

并不是很难。执行以下操作

1)在您的“加载更多”链接上注册一个自定义处理程序。例如,类似这样的内容

代码语言:javascript
复制
$j('a[name=pageForward]').each(function() {
     $j(this).click(function(e) {
         e.preventDefault();
         defaultPage++;
         doSearch(defaultPage);
      });
})

请注意,我向锚点标记添加了一个name属性。doSearch具有以下功能:

2)触发ajax以加载更多内容。另外,将load more的内容替换为'Loading‘或其他什么

代码语言:javascript
复制
$.ajax({
        url: url,
        data: queryString,
        dataType: json or xml,
        cache: false,
        beforeSend: function(xhr) {
        },
        success: function(data, status, xhr) {
        },
        error: function(xhr, status, errorText) {
            that.showNothing();
        },
        complete: function(xhr, status) {
        }
    });

查看$.ajax的jquery文档,了解它们各自的含义。如果你愿意,你可以在前面修改dom并完成你注册的回调。

3)在ajax完成时,填充数据,并更改回链接(或删除“正在加载”消息)。

作为个人偏好,我会禁用2中的链接,并在加载发生时显示一个带有“正在加载”消息的特殊div。

此外,更高级的方法是为分页视图创建一个jquery插件……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4777300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档