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

请求实现导航主/子链接点击的控制台输出指定逻辑

实现菜单点击的控制台输出逻辑

你可以通过原生JavaScript事件委托来高效实现这个需求,代码逻辑清晰且适配动态菜单场景:

// 给header绑定点击事件(事件委托)
document.querySelector('header').addEventListener('click', function(e) {
  // 阻止默认的锚点跳转行为
  e.preventDefault();
  
  // 仅处理a标签的点击
  if (e.target.tagName === 'A') {
    const linkText = e.target.textContent.trim();
    // 查找当前a标签最近的带data-submenu属性的父级li
    const parentMenuLi = e.target.closest('li[data-submenu]');
    
    if (parentMenuLi) {
      // 子菜单链接:输出父菜单名称 + 子链接文本
      console.log(`${parentMenuLi.dataset.submenu}-${linkText}`);
    } else {
      // 主菜单链接:直接输出链接文本
      console.log(linkText);
    }
  }
});

代码逻辑说明:

  • 事件委托:仅在header层面绑定一次事件,无需给每个a标签单独绑定,性能更优且支持后续动态添加的菜单元素。
  • 阻止默认行为:e.preventDefault()避免点击#时页面自动滚动到顶部。
  • 层级判断:通过closest('li[data-submenu]')快速定位父级主菜单,精准区分当前点击的是主菜单还是子菜单链接。
  • 文本处理:用trim()去除文本前后可能存在的空格,保证输出内容整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:05:22