为什么我的JQuery弹窗AJAX加载TAB对应分类ID数据,只有第一个分类滚动加载正常,其他分类却加载第一个分类的内容?

为什么我的JQuery弹窗AJAX加载TAB对应分类ID数据,只有第一个分类滚动加载正常,其他分类却加载第一个分类的内容?

jquery点击按钮弹窗,并ajax加载tab对应分类id数据

问题:点击弹窗的按钮,并AJAX加载特定分类ID的数据,每个分类TAB滚动到底部进行AJAX翻页,但只有第一个分类滚动加载正常,其他分类加载的是第一个分类的内容。

解答:

在原来的代码中,未设置分类ID和当前页码,也不在AJAX请求前判断是否正在加载中,导致了上述问题。改进后的代码如下:

// 初始化分类ID currentPage total let categoryId = 1, currentPage = 1, total = 0;// 是否加载中let isLoading = false;// 加载分类数据function loadCategoryData(id, page) {    $(".tab_item").html('加载中...');    $(this).addClass('cur').siblings().removeClass('cur');    loadPageData(id, page);}// 监听滚动事件$('.tab_item').scroll(function () {    if (isLoading) {        return;    }    //  判断是否滚动到底部距离150px 加载更多    const scrollTop = $(this).scrollTop();    const scrollHeight = $(this).prop('scrollHeight');    const containerHeight = $(this).outerHeight();    if (scrollHeight - scrollTop - containerHeight < 150) {        // 滚动到底部距离小于150px,加载更多数据        currentPage++;        if (currentPage  {        setTimeout(() => {            // 随机返回page条数据            const list = [];            // 每次返回20条数据            for (var i = 0; i  {        // 更新总页数        total = totalPages;        let html = "";        for (var i = 0; i < list.length; i++) {            html += '
@@##@@"' + list[i].title + '"
'; } $(".tab_item").append(html); }).finally(() => { isLoading = false; });}

登录后复制

在修改后的代码中:

初始化了分类ID(categoryId)、当前页码(currentPage)、总页数(total)和加载状态(isLoading)。在AJAX请求前判断是否正在加载中,防止重复发送请求。通过监听滚动事件实现AJAX翻页。使用模拟数据函数getData模拟后端返回的数据,方便测试。实际项目中使用AJAX请求调用后端接口获取数据。为什么我的JQuery弹窗AJAX加载TAB对应分类ID数据,只有第一个分类滚动加载正常,其他分类却加载第一个分类的内容?

以上就是为什么我的JQuery弹窗AJAX加载TAB对应分类ID数据,只有第一个分类滚动加载正常,其他分类却加载第一个分类的内容?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2803841.html

(0)
上一篇 2025年3月8日 21:46:41
下一篇 2025年2月18日 02:17:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论