我正在使用具有 HTML 结构的 CSS 菜单,例如:
<div class="toolmenu" style="min-width:800px">
<ul>
<li><a class="dropdown left" href="#">Main A</a></li>
</ul>
<ul>
<li><a class="dropdown right" href="#">Main B<span class="tm-arrow">▼</span></a>
<ul class="tm-width-2">
<li><a href="#">Sub i</a></li>
<li><a href="#">Sub ii</a></li>
<li><a href="#">Sub iii</a></li>
<li><a href="#">Sub iv</a></li>
</ul>
</li>
</ul>
</div>
CSS 可以在这个 jsFiddle中看到。
它工作得很好,只是一旦单击一个项目,子菜单就不会关闭。由于菜单项触发了对页面的 Ajax 更新,因此它提供了一种古怪的 UI 体验。
为了解决这个问题,我尝试了一点 JavaScript:
$('div.toolmenu ul li ul li a').click(function () {
var grand = $(this).parent().parent();
grand.css('display', 'none');
setInterval(function () {
grand.css('display', '');
}, 300);
});
这在大多数浏览器中都非常有效。但是,IE 的行为如下:
- 单击时子菜单消失
- setInterval 的回调触发后,子菜单重新出现
我怎样才能在 IE 中也能做到这一点?有没有更好的方法让子菜单在点击后消失?