2013-12-22 63 views
2

我想我的導航加載沒有加載頁面..所有作品。但導航元素<li> nav </li>應該獲得另一種風格的類。「主動」。我想這一點,但不工作,你卡恩看到我的page 代碼會發生什麼:JQuery導航集類

  $('#content').children('section').not('#home').hide(); 
      $(".a").hasClass('navigation-element').parent().removeClass('active'); 
      $(".a").click(function(e){ 
       e.preventDefault(); 

       if ($(this).hasClass('navigation-element')){ 
        var $target = $('#' + $(this).attr('href')).stop(true, true); 
        var $secs = $('#content > section').not($target).stop(true, true).filter(':visible'); 
        if ($secs.length) { 
         $secs.fadeOut(function() { 
          $target.fadeIn(); 
          $(this).parent().addClass('active'); 
         }); 
        } else { 
         $target.fadeIn(); 
        } 
       } else if ($(this).hasClass('hide')){ 
        $(this).parent().fadeOut(); 
       } 
      }); 

的誤差在2號線和12

回答

1

2號線:hasClass返回一個布爾值,你需要使用類過濾

第12行:這裏this不指點擊li元素,你需要使用一個封閉的可變指點擊的元素

//initial setup 
$('#content').children('section').not('#home').hide(); 
$('.active:has(a.anavigation-element)').removeClass('active'); 
$('.navigation-element[href="home"]').parent().addClass('active'); 

$('.navigation-element').click(function (e) { 
    var $this = $(this); 
    e.preventDefault(); 

    var $target = $('#' + $(this).attr('href')).stop(true, true); 
    var $secs = $('#content > section').not($target).stop(true, true).filter(':visible'); 

    if ($secs.length) { 
     //remove existing active from the prev element 
     $('.active:has(a.navigation-element)').removeClass('active'); 
     $secs.fadeOut(function() { 
      $target.fadeIn(); 
      $this.parent().addClass('active'); 
     }); 
    } else { 
     $target.fadeIn(); 
     $this.parent().addClass('active'); 
    } 
});