2012-05-18 117 views
1

顯示/隱藏不工作IE7。 在其他瀏覽器中工作正常。 請幫助我。 我做錯了什麼?JQuery顯示/隱藏不工作IE7

<div id="secondary_nav" class="box">      
    <ul>  
     <li><a href="">test</a></li> 
     <ul class="sub-menu" style="height: 336px; display: none;"> 
      <li><a href="">test</a></li>    
     </ul> 
    </ul>     
</div> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#secondary_nav ul li").hover(function() { 
      $(this).next(".sub-menu").show(); 
      $(this).next(".sub-menu").hover(function() { 
        $(this).show(); 
       }, function() {$(this).hide();} 
      ); 
     },function() {$(this).next(".sub-menu").hide();} 
    ); 
}); 
</script> 
+1

把你內心的UL鋰內,它會工作! – Zachary

回答

0

HTML代碼壞了。您不能在另一個ul標記內直接使用ul標記。

1

您首先需要修正您的標記。一個子菜單雲在同一li作爲代表它的鏈接:你有你的$.hover()一些問題,你是第一個的在州內執行額外的嵌套懸停

<div id="secondary_nav" class="box">      
    <ul>  
    <li> 
     <a href="">test</a> 
     <ul class="sub-menu" style="height: 336px; display: none;"> 
     <li><a href="">test</a></li>    
     </ul> 
    </li> 
    </ul>     
</div> 

下一步。讓我們清理一下還有:

$(function(){ 
    $("#secondary_nav > ul > li").hover(
    function(){ $(".sub-menu", this).show(); }, 
    function(){ $(".sub-menu", this).hide(); } 
); 
}); 

小提琴:http://jsfiddle.net/4KFac/

+0

不,你需要在我最初編寫的標記中工作。 – user1404412

+0

@ user1404412不,您需要編寫適當的標記。您不能編寫格式不正確的HTML,然後在瀏覽器行爲不正確時失望。 – Sampson