You need to enable JavaScript to run this app. 如何在特定URL页面加载时为jQuery菜单添加active类并保持展开
优惠活动
大模型
产品
解决方案
定价
更多

如何在特定URL页面加载时为jQuery菜单添加active类并保持展开

问题原因

你写的代码存在两处明显错误,导致无法生效:

  • 条件判断逻辑不完整:indexOf() 方法匹配到目标字符串时会返回对应的下标位置,未匹配时返回-1,你没有补全判断条件,分支永远不会按预期触发
  • 语法&执行时机错误:代码末尾多了冗余的闭合符号});,且没有等待DOM加载完成就执行DOM操作,很可能出现选不到.menu和nav元素的情况

修正方案

直接在原有点击切换逻辑的基础上,补充页面加载后的URL判断逻辑即可,完整可用代码如下:

// 等待DOM完全渲染后再执行逻辑
$(function() {
  // 原有点击切换菜单的逻辑不变
  $('.menu').on('click', function() {
    $('.menu').toggleClass('active');
    $('nav').toggleClass('active');
  });

  // 页面加载时判断URL是否包含get-started,匹配则默认展开菜单
  if(window.location.href.indexOf("get-started") > -1) {
    $('.menu').addClass('active');
    $('nav').addClass('active');
  }
});

说明

这里使用addClass()而非你原来的toggleClass()更稳妥,可避免页面加载时如果元素已经预置了active类,反而被误操作收起的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 20:21:03