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

Bootstrap3中如何实现悬停某按钮时隐藏其他按钮的子菜单

实现方案

你的问题核心是没有统一处理所有父按钮的悬停切换逻辑,且手动修改opacity的方式没有和Bootstrap的tab组件能力结合,导致不同tab的显隐状态没有联动。按以下步骤修改即可:

1. 替换原有JS代码

把你现有的JS逻辑全部替换为以下代码:

$(document).ready(function() {
    // 保留原有模态框内部的tab切换逻辑
    $('#create_btn').on('click', function(){
        $('#create_tab').tab('show')
    })
    $('#login_btn').on('click', function(){
        $('#login_tab').tab('show')
    })
    $('#create_btn').on('click', function(){
        $('#create1_tab').tab('show')
    })

    // 统一绑定所有顶部父按钮的悬停事件
    $('.container .nav li a[data-toggle="tab"]').on('mouseenter', function(e) {
        e.preventDefault();
        // 调用Bootstrap原生tab展示方法,会自动隐藏同组其他所有tab-pane
        $(this).tab('show');
    })

    // 可选拓展:如果需要鼠标离开整个按钮区域后隐藏所有子按钮,可开启以下逻辑
    /*
    $('.container, .tab-content').on('mouseleave', function() {
        $('.tab-content .tab-pane').removeClass('active in');
    })
    */
});

2. 可选优化

你原有代码中存在两处不影响功能但建议修改的问题:

  • 删除重复的id="customTab",id在单页面中必须唯一,只保留父按钮所在容器的id即可
  • 可以删除原来手动修改opacity的相关代码,Bootstrap的tab组件自带的active、in类已经可以控制显隐,无需额外做样式覆盖

实现原理

Bootstrap的tab组件原生支持切换时自动隐藏其他同组的tab-pane,只需要在悬停父按钮时主动触发tab('show')方法,就可以实现你要求的「仅显示当前悬停按钮对应子按钮组,隐藏其他所有子按钮」的效果,不需要自己手动控制每个元素的显隐状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 18:06:03