日期:2014-05-16  浏览次数:20361 次

JQ简单导航在IE8-下的问题
在IE8-下,无效果,是什么问题呢?

ul{ list-style-type:none;}
ul,li,a{ margin:0; padding:0;}
#menu li{ position:relative; float:left; margin:0 5px; background:#ccc;}
#menu li a{ display:block; width:150px;}
#menu li a:hover{ background:yellow;}
#menu ul{ display:none; position:absolute; top:18px; left:0;}
#menu ul li{ margin:0;}


$(document).ready(function(){
  $('#menu li:has(ul)').hover(function(){
$(this).children('ul').stop(true, true).slideDown();
}, function(){
$(this).children('ul').stop(true, true).slideUp();
});
});


<ul id="menu">
   <li><a href="#">Level 1 Menu</a></li>
    <li><a href="#">Level 1 Menu
     <ul>
       <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
      </ul>
    </a></li>
    <li><a href="#">Level 1 Menu
     <ul>
       <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
        <li><a href="#">Level 2 Menu</a></li>
      </ul>
    </a></li>
    <li><a href="#">Level 1 Menu</a></li>
  </ul>

------解决方案--------------------
把children方式查找子元素改为find方式查找

$(document).ready(function(){
  $('#menu li:has(ul)').hover(function(){
$(this).find('ul').stop(true, true).slideDown();
    }, function(){
        $(this).find('ul').stop(true, true).slideUp();
    });
});