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

jQuery slideToggle点击时同步切换按钮文本与Font Awesome图标实现

问题排查
  • 状态判断语法错误:$('#showNav').css('display') 直接返回display属性的字符串值,你代码中额外多写的.display会读取到undefined,导致判断逻辑永远不会命中block的分支。
  • 状态判断时机错误:slideToggle是带过渡的异步动画,调用后立即读取元素的display属性,拿到的是动画执行前的旧状态,会导致按钮内容和实际的展开/收起状态不同步。
修正后的代码

仅需要替换原有JS代码即可,CSS、HTML无需调整:

$(document).ready(function(){
    $("#showNavBut").click(function() {
        // 把状态判断放到slideToggle的回调函数中,等动画完全执行完成后再修改按钮内容
        $("#showNav").slideToggle(function() {
            if ($(this).css('display') === 'block') {
                $('#showNavBut').html('关闭所有问题 <i class="fas fa-chevron-up" aria-hidden="true"></i>');
            } else {
                $('#showNavBut').html('打开所有问题 <i class="fas fa-chevron-down" aria-hidden="true"></i>');
            }
        });
    });
});

如果需要保留英文按钮文本,把对应中文修改为Close all questions和Open all questions即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:36:01