我使用一個CSS菜單具有HTML結構,如:隱藏CSS下拉菜單在IE
<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可在this 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這項工作呢?點擊後是否有更好的方法使子菜單消失?
Win7上的IE9似乎表現正確。 – Blazemonger 2013-02-09 02:21:55