我正在用 jquery 的手风琴编写一个嵌套菜单。最多有 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-rod
div 会捕获单击并调用选择处理程序。 - 如果我单击 div 后面的 a 元素内的 span 中的文本,
.lightning-rod
我的两个处理程序都不会被调用,并且 jquery 会切换 children。
我可以做些什么让.lightning-rod
div 优先于 a 元素并像在 chrome 中一样捕捉点击?
谢谢