2013-01-18 50 views
0

我的导航是90%的工作,但我有困难让我的孙子(三级导航)显示一旦子(导航)链接已被徘徊。jQuery导航 - 需要显示孙孩子链接上的孩子悬停 - jsfiddle

这里是什么,我至今一的jsfiddle: http://jsfiddle.net/CSwgQ/1/

仅供参考:根据每个孩子的链接“关于”目前有一个孙子链接进行测试。

<script type='text/javascript'> 
      jQuery(document).ready(function($){ 
       var lastopen = null; 
       var timeout = null; 

       jQuery("#access ul li ul").show(); 
       jQuery("#access ul li ul li").hide(); 

       function showmenu(element) 
       { 
        element.css("background","url('/var/www/wp-content/themes/GreatWall/images/arrow.png') no-repeat bottom"); 
       // var children = element.find("ul li"); 
        var children = element.children('ul').children('li') 
        children.show(); 
       } 

       function hidemenu(element, fade) 
       { 
        element.css("background","transparent"); 
        var children = element.find("ul li"); 

        fade = typeof(fade) != 'undefined' ? fade : false; 
        if(fade) 
        { 
         children.fadeOut(300); 
        } 
        else 
        { 
         children.hide(); 
        } 
       } 

       jQuery("#access ul li").each(function(i,v){ 
       jQuery(v).mouseover(function(e){if(timeout != null){clearTimeout(timeout); timeout = null;} if(lastopen != null){hidemenu(lastopen);} lastopen = jQuery(this); showmenu(lastopen);}); 
       jQuery(v).mouseout(function(e){if(timeout != null){clearTimeout(timeout); timeout = null;} timeout=setTimeout(function(){hidemenu(lastopen, true); lastopen = null;},1500);}); 
       }); 

       //jQuery("#access ul li ul").css("display", "block"); 
       //jQuery("#access ul li").each(function(i,v){var width = 0; jQuery(v).find("ul li").each(function(ii,vv){width += jQuery(vv).width();}); var mid = jQuery(v).position().left+jQuery(v).width()/2-width/2; jQuery(v).find("ul li:first").css("margin-left", Math.min(Math.max(0, mid), 940-width));}); 
       //jQuery("#access ul li").each(function(i,v){var width = 0; jQuery(v).find("ul li").each(function(ii,vv){width += jQuery(vv).width();}); var mid = jQuery(v).position().left; jQuery(v).find("ul li:first").css("margin-left", Math.min(Math.max(0, mid), 940-width));}); 
       //jQuery("#access ul li ul").css("display", "none"); 
      }); 

      </script> 

任何帮助将不胜感激!在此先感谢

回答

1

试试这个脚本:http://jsfiddle.net/CSwgQ/3/

这是你在寻找什么:

jQuery(document).ready(function ($) { 
    $('.menu li').each(function(){ 
     $(this).hover(function(){ 
     $('> ul',this).show(); 
     },function(){ 
     $('> ul',this).delay(1000).fadeOut(); 
     }); 
    }); 
}); 
+0

哈,不可思议!我肯定欠你一杯啤酒。你真棒Jai –

+0

谢谢杰夫!你真的是一个很好的人,是在印度等待啤酒。 – Jai

+0

任何想法,为什么这不会显示在IE 8或以下与jquery-1.7.1的孙辈?在所有其他浏览器中都能完美运行 –

相关问题