【问题标题】:Navigation with sub-menu fade effect, Links broken - jQuery带有子菜单淡入淡出效果的导航,链接断开 - jQuery
【发布时间】:2011-01-14 16:27:16
【问题描述】:

我有一个按我想要的方式工作的导航菜单,但是当我单击子菜单中的链接时,它不会加载页面。它只会启动淡出效果。我不知道为什么链接不会加载页面。如果我关闭 jQuery,它工作正常。知道为什么会发生这种情况以及如何解决吗?

var delay = 100;
var fade = 400;

 $j(function(){
 $j('#access-navi li.sub').toggle(function(){
  $j(this).find('ul li a').each(function(i){
   $j(this).delay(i*delay).fadeIn(fade);
       });
   }, function() {
  $j('#access-navi li.sub').find('ul li a').fadeOut(fade/2);
  });

}); 

HTML:

<div id="access-navi" class="no-j" role="navigation">
   <ul>
    <li><a href="/">Home</a></li>
    <li class="sub"><a href="#">Code</a>
     <ul>
      <li><a href="/code/html-css/">Html.Css</a></li>
      <li><a href="/code/java/">Java</a></li>
      <li><a href="/code/jquery/">jQuery</a></li>
      <li><a href="/code/php/">Php</a></li>
     </ul>
    </li>
   </ul>
   <div class="clear"></div>
  </div>

【问题讨论】:

    标签: jquery list tags navigation anchor


    【解决方案1】:
    $j(function(){
        var inner="";
        $j('#access-navi .sub > a').toggle(function(){
            inner=$j(this).parent().find('ul li');
            inner.each(function(i){
                $j(this).delay(i*delay).fadeIn(fade);
            });
        },function(){
            inner.fadeOut(fade/2);
        });
    }); 
    

    哦,我在 .sub 中隐藏了 LIs 而不是 LIs A,没有必要只隐藏锚点 IMO 褪色没有发生,但我不确定这是副作用还是故意行为,因为您将重新加载页面。我正在使用 inner 变量来缓存这个 jQuery 选择器的结果,而不是在下一次切换时再次读取它。

    如果您有任何问题,请告诉我,我很乐意提供帮助:)

    干杯

    G.

    【讨论】:

    • 哇哦,好用!我不确定你到底改变了什么?如果你能解释一下,那就太好了! :] 我仍然不明白为什么它没有在点击时加载页面..
    • 我只为
    • 代码 使用切换,而您已经将它用于整个 .sub,.toggle 是阻止对链接的默认操作
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签