Навигация с эффектом исчезновения подменю, неработающие ссылки - jQuery - PullRequest
1 голос
/ 14 января 2011

У меня есть меню навигации, которое работает так, как я хочу, но когда я нажимаю на ссылку, которая находится в подменю, она не загружает страницу.Это только запустит эффект затухания.Я не знаю, почему ссылка не будет загружать страницу.Если я отключаю 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>

1 Ответ

1 голос
/ 14 января 2011
$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 нет смысла скрывать только якоря ИМО. Фейдинга не происходит, но я не уверен, был ли это побочный эффект или намеренное поведение, как выПерезагружу страницу.Я использую переменную inner, чтобы кэшировать результат этого селектора jQuery, вместо того, чтобы читать его снова при следующем переключении.

Дайте мне знать, если у вас возникнут вопросы, я с удовольствием помогу:)

Ура

Г.

...