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

升级mmenu至9.1/9.3版本后,在TYPO3项目中无法正常工作

解决mmenu v9.3在TYPO3中的菜单异常问题

1. 处理克隆菜单的全局显示问题

mmenu v9开始默认会克隆原菜单(生成带mm-clone-前缀的ID),这是和v8的核心差异之一。你需要通过CSS控制原菜单与克隆菜单的显示逻辑:

/* 默认隐藏原菜单,大屏下显示顶部导航 */
#my-menu {
    display: none;
}
@media (min-width: 980px) {
    #my-menu {
        display: block;
    }
    /* 大屏下隐藏克隆菜单和汉堡触发按钮 */
    .mm-clone-my-menu,
    .mm-menu-toggle {
        display: none !important;
    }
}
@media (max-width: 979px) {
    /* 小屏显示汉堡按钮,克隆菜单由mmenu控制显示/隐藏 */
    .mm-menu-toggle {
        display: block;
    }
}

替换#my-menu为你项目中原菜单的实际ID,确保克隆菜单的类/ID选择器与页面中实际生成的元素匹配。

2. 修复点击失效与左侧菜单布局问题

mmenu v9的初始化参数和事件绑定逻辑有调整,检查并修改你的初始化代码:

document.addEventListener('DOMContentLoaded', function() {
    new Mmenu('#my-menu', {
        offCanvas: {
            position: 'left',
            width: 280, // 自定义菜单宽度,解决占半屏的问题
        },
        navbar: {
            title: '导航' // 可选,设置菜单标题
        }
    }, {
        offCanvas: {
            page: {
                selector: '#page' // 指定页面主容器,确保菜单弹出时页面正确偏移
            }
        }
    });
});
  • 如果不需要克隆菜单,可以在配置中添加clone: false,但需确保原菜单的HTML结构符合mmenu v9的要求
  • 点击失效通常是因为没有正确指定页面容器selector,导致mmenu的事件监听未正确挂载到页面元素上

3. TYPO3模板与资源检查

  • 确认TYPO3生成的菜单HTML结构无重复ID、类名冲突
  • 检查mmenu v9的CSS/JS资源是否正确加载:v9可能新增了样式文件,需确保模板中引入了完整的mmenu.css和mmenu.js
  • 清除TYPO3后台缓存和浏览器缓存,避免旧版本资源残留

4. 快速调试方法

  • 打开浏览器控制台,查看元素的事件绑定情况,确认mmenu的点击事件是否已挂载到汉堡按钮和菜单元素上
  • 临时禁用TYPO3中的其他前端插件(如jQuery扩展、其他导航组件),排查是否存在脚本冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:35:10