0

我正在用 jquery 的手风琴编写一个嵌套菜单。最多有 2 层嵌套。每个标头必须响应两个事件:

  1. 如果单击该区域的左半部分,则选择该项目
  2. 如果单击该区域的右半部分,则打开/关闭项目并显示/隐藏子项

这两个事件是互斥的,每个事件都有自己的事件处理程序。

HTML 看起来像这样:

<div class="accordion">
  <h3>
    <a href="#">
       <span>some text</span>
       <span>more text</span>
    </a>
    <div class="lightning-rod"></div>
  </h3>
  <div>
     <!-- content goes here -->
  </div>
...
</div>

带有类的 div.lightning-rod的样式使其覆盖元素的左半部分。处理程序绑定到“单击”事件并处理选择。如果用户单击右侧,则手风琴将捕捉到单击并进行子项的切换。

这适用于 chrome,但 IE9 给我带来了问题。在 IE9 中:

  • 如果我单击右侧,jquery 会处理切换并调用切换处理程序。
  • 如果我单击左侧,我的lightning-roddiv 会捕获单击并调用选择处理程序。
  • 如果我单击 div 后面的 a 元素内的 span 中的文本,.lightning-rod我的两个处理程序都不会被调用,并且 jquery 会切换 children

我可以做些什么让.lightning-roddiv 优先于 a 元素并像在 chrome 中一样捕捉点击?

谢谢

4

0 回答 0