You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery .load()点击事件中添加预加载器并控制显隐

实现预加载器显示与自动隐藏的解决方案

Hey,我来帮你搞定这个预加载器的需求!你的现有代码已经能正常实现分页加载和历史记录更新,只需要添加几个关键步骤就能实现预加载器的显示和自动隐藏,具体如下:

1. 先准备预加载器的HTML和样式

首先你需要在页面里加一个预加载器的元素,以及对应的CSS样式,让它默认隐藏,需要时再显示:

HTML 结构

把这个元素放在页面合适的位置(比如内容容器内部或者页面全局):

<div class="loader">正在加载中...</div>

CSS 样式

这里给你一个基础的居中样式,你可以根据自己的页面设计调整(比如改成加载动画图标):

/* 预加载器基础样式 */
.loader {
    display: none; /* 默认隐藏 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 12px 24px;
    background-color: #ffffff;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    z-index: 1000; /* 确保在内容上方 */
}

/* 给内容容器加相对定位,让预加载器相对于它居中 */
.preloadswitch {
    position: relative;
    min-height: 200px; /* 避免容器高度塌陷,确保预加载器能正常显示 */
}

2. 修改你的jQuery代码

核心逻辑是:点击分页链接时立刻显示预加载器,然后利用.load()的回调函数,在内容加载完成(无论成功或失败)后隐藏预加载器。

修改后的完整代码如下:

jQuery(document).on('click','#Pagination a', function(e){
    e.preventDefault();
    const link = jQuery(this).attr('href');
    
    // 第一步:点击后立即显示预加载器
    jQuery('.loader').show();

    // 更新浏览器历史记录(这部分你原来的代码没问题)
    window.history.pushState('obj', 'newtitle', link);
    
    // 第二步:执行加载,并用回调函数处理加载完成后的逻辑
    jQuery('.preloadswitch')
        .load(`${link} .the-categories`, function(response, status, xhr) {
            // 不管加载成功还是失败,先隐藏预加载器
            jQuery('.loader').hide();
            
            if (status === "success") {
                // 加载成功时,让新内容淡入显示
                jQuery(this).fadeIn('slow');
            } else {
                // 可选:加载失败时给用户提示(可以根据需求调整)
                jQuery(this).html('<p>加载失败,请稍后重试或检查链接</p>');
            }
        });
});

关键细节说明

  • 显示时机:一定要在调用.load()之前就显示预加载器,这样用户点击后能立刻得到反馈,不会觉得页面没反应。
  • 回调函数的作用:.load()的第三个参数是回调函数,它会在请求完全结束(包括成功和失败)时触发,所以在这里隐藏预加载器能避免出现加载器一直显示的情况。
  • 错误处理:添加了状态判断,当加载失败时给用户提示,这是提升用户体验的小细节,你可以根据自己的需求调整提示内容。

如果你的预加载器是全屏覆盖式的,只需要调整CSS的定位为fixed,并设置宽高为100%即可,核心逻辑完全一致。

内容的提问来源于stack exchange,提问作者Francis Alvin Tan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:15:02