1

显示/隐藏在 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>
4

3 回答 3

1

您首先需要修复您的标记。子菜单与li代表它的链接相同:

<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>

$.hover()接下来,您在第一个悬停状态下执行附加嵌套悬停的位置存在一些问题。让我们也清理一下:

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

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

于 2012-05-18T23:13:21.437 回答
0

它对我来说很好http://jsfiddle.net/Ln8ep/1/
尝试使用$(document).ready(function() {

于 2012-05-18T23:18:06.107 回答
0

HTML 代码已损坏。您不能将ul标签直接放在另一个ul标签内。

于 2012-05-18T23:10:34.510 回答