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

如何阻止Swiper.js识别到最后一张slide时自动禁用next下一页按钮

问题原因

Swiper初始化时会基于当前存在的slide节点总数计算滑动边界、索引状态,你动态添加slide后没有通知Swiper更新内部状态,所以它会沿用初始1个slide的计算结果,误将第一页判定为最后一页,触发下一页按钮的禁用逻辑。

更优的实现方案

方案1:根本解决状态同步问题(最推荐)

动态添加完所有.swiper-slide节点后,手动调用Swiper实例的update方法,让它重新计算所有状态:

// 动态添加slide的代码执行完成后调用
swiper.update()

Swiper更新内部的slide总数、边界参数后,会自动修正isEnd的判定结果,不需要你手动修改按钮的类和属性。
如果直接使用Swiper提供的API添加slide,内部会自动触发更新,更省心:

// 示例:往Swiper末尾添加新slide
swiper.appendSlide('<div class="swiper-slide">新的slide内容</div>')

方案2:简化当前的手动修改代码

如果确实需要强制覆盖Swiper的禁用逻辑,可以把jQuery操作链式调用简化:

if(swiper.isEnd){
    $("#prosegui")
      .removeClass("swiper-button-disabled swiper-button-lock")
      .removeAttr("disabled tabindex aria-disabled aria-controls")
}

方案3:初始化时禁用Swiper的按钮自动禁用逻辑

如果全程不需要Swiper自动控制下一页按钮的禁用状态,可以在Swiper初始化配置中修改navigation相关参数:

const swiper = new Swiper('.swiper', {
  // 其他配置...
  navigation: {
    nextEl: '#prosegui',
    disabledClass: '', // 清空禁用状态的类名,Swiper就不会自动添加
    lockClass: '' // 清空锁定状态的类名
  }
})

内容的提问来源于stack exchange,提问作者user16136866

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:36:04