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

IE11环境下jQuery实现带锚点滚动的标签页显隐切换失效问题求助

问题根因

你当前的实现依赖注释event.preventDefault()触发原生锚点跳转实现滚动,但IE11中锚点跳转的默认行为优先级高于点击事件逻辑,会打断标签切换的DOM操作,导致功能失效。

兼容IE11的修复方案

不要依赖原生锚点跳转实现滚动,主动阻止默认行为后手动触发滚动逻辑,可兼容所有浏览器包括IE11,修复后代码如下:

$(document).ready(function() {
  $('.nav-tabs > li > a').click(function(event) {
    // 阻止默认锚点跳转,避免IE11逻辑冲突
    event.preventDefault();
    // 获取当前激活的tab内容选择器
    var active_tab_selector = $('.nav-tabs > li.active > a').attr('href');
    // 移除原有导航的active样式
    var actived_nav = $('.nav-tabs > li.active');
    actived_nav.removeClass('active');
    // 给当前点击的导航添加active样式
    $(this).parents('li').addClass('active');
    // 隐藏原有激活的tab内容
    $(active_tab_selector).removeClass('active');
    $(active_tab_selector).addClass('hide');
    // 显示目标tab内容
    var target_tab_selector = $(this).attr('href');
    $(target_tab_selector).removeClass('hide');
    $(target_tab_selector).addClass('active');
    // 主动滚动到目标内容位置,300是滚动动画时长(单位毫秒),可自行调整
    $('html, body').animate({
      scrollTop: $(target_tab_selector).offset().top
    }, 300);
  });
});

如果不需要滚动动画,想要直接跳转到对应位置,可以把滚动逻辑替换为:

$('html, body').scrollTop($(target_tab_selector).offset().top);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:06:07