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

如何设置Elementor Pro导航菜单控件的父菜单项仅触发下拉不跳转

Elementor Pro 导航父菜单仅触发下拉不跳转解决方案

方案1:WordPress 菜单原生配置(优先推荐,无需写代码)

  • 进入 WordPress 后台 → 「外观」→「菜单」
  • 找到所有带下拉子菜单的父菜单项,将其调整为自定义链接类型,URL 填写#,链接文本保持原有内容不变
  • 保存菜单后清理站点缓存即可生效

方案2:修正版 JS 实现(无需修改后台菜单配置)

原代码失效核心原因为执行时机早于导航 DOM 渲染完成,以下代码兼容 Elementor 异步渲染逻辑:

<script>
document.addEventListener('DOMContentLoaded', function() {
    function disableParentMenuJump() {
        // 匹配Elementor导航的父菜单项链接
        const parentAnchors = document.querySelectorAll(".elementor-nav-menu .menu-item-has-children > a");
        parentAnchors.forEach(anchor => {
            anchor.setAttribute('href', '#');
            anchor.addEventListener('click', function(e) {
                e.preventDefault();
            });
        });
    }
    disableParentMenuJump();
    // 适配Elementor动态加载、编辑器预览场景
    if (window.elementorFrontend) {
        elementorFrontend.hooks.addAction('frontend/element_ready/nav-menu.default', disableParentMenuJump);
    }
});
</script>

将上述代码插入到页脚 HTML 控件中即可。

方案3:修正版 CSS 实现

原CSS失效是因为直接禁用了整个父菜单容器的点击事件,调整选择器仅限制链接跳转行为即可:

/* 禁用父菜单项链接跳转,保留下拉触发能力 */
selector .menu-item-has-children > a {
    pointer-events: none;
    cursor: default;
}
/* 恢复子菜单项正常点击能力 */
selector .menu-item-has-children .sub-menu a {
    pointer-events: auto;
    cursor: pointer;
}

将上述代码添加到导航菜单控件的自定义CSS输入框中即可。

注意事项

  • 所有配置修改后需要清理站点缓存、浏览器缓存再测试效果
  • 三种方案任选其一即可,无需同时使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:57:03