实现的核心在于两点:

  • tabindex 属性:使菜单元素能够接收焦点
  • blur 事件:当菜单失去焦点时自动关闭

优势在于:

  • 代码简洁,逻辑清晰
  • 页面中存在多个右键菜单时不需要来回进行开关操作
  • 无需复杂的 DOM 事件监听
  • 符合用户直觉(点击其他地方菜单消失)

代码实例: