2014-01-20 125 views
0

我正面臨jQuery的一個小問題。我的導航欄有被選中時變爲藍色的鏈接('active'屬性),我可以添加屬性直到現在,但是當我點擊另一個鏈接時,我無法正確刪除最後一個。我寫了一些代碼,如果有人能幫助我,我會很感激。使用jQuery刪除屬性

// jQuery的

jQuery('.navbar-nav').on('click', ' li > a.ajaxify', function (e) { 
     e.preventDefault(); 
     App.scrollTop(); 

     var url = $(this).attr("href"); 
     var menuContainer = jQuery('.navbar-nav'); 
     var pageContent = $('.page-content'); 
     var pageContentBody = $('.page-content .page-content-body'); 

     menuContainer.children('li.active').removeClass('active'); 
     menuContainer.children('arrow.open').removeClass('open'); 
     menuContainer.children('arrow.open').removeClass('open'); 

     $(this).parents('li').each(function() { 
      $(this).addClass('active'); 
      $(this).children('a > span.arrow').addClass('open'); 
     }); 
     $(this).parents('li').addClass('active'); 

     App.blockUI(pageContent, false); 

     ... 
    }); 

// HTML

<li class="active"> 
    <a href="" class="ajaxify" id="startLoadTag"> 
     <i class="fa fa-home"></i> Link 
    </a> 
</li> 
<li class=""> 
    <a href="" class="ajaxify"> 
     <i class="fa fa-puzzle-piece"></i> Link 
    </a> 
</li> 
<li class=""> 
    <a data-toggle="dropdown" data-hover="dropdown" data-close-others="true" class="dropdown-toggle" href=""> 
     <i class="fa fa-quote-right"></i> 
     Evento 
     <i class="fa fa-angle-down"></i> 
    </a> 
    <ul class="dropdown-menu"> 
     <li> 
      <a href="" class="ajaxify"><i class="fa fa-building"></i> Link</a> 
     </li> 
     <li> 
      <a href="" class="ajaxify"><i class="fa fa-lightbulb-o"></i> Link</a> 
     </li> 
     <li> 
      <a href="" class="ajaxify"><i class="fa fa-suitcase"></i> Link</a> 
     </li> 
     <li> 
      <a href="" class="ajaxify"><i class="fa fa-group"></i> Link</a> 
     </li> 
     <li> 
      <a href="" class="ajaxify"><i class="fa fa-comments"></i> Link</a> 
     </li> 
    </ul> 
</li> 

回答

0

問題解決了,只是做了它,一切正常。謝謝大家。

menuContainer.children('li.active').removeClass('active'); 
menuContainer.children('arrow.open').removeClass('open'); 

$('ul').each(function() { 
    $(this).children('li').each(function() { 
     if ($(this).hasClass('active')) { 
      $(this).removeClass('active'); 
     } 
    }); 
}); 

$(this).parents('li').addClass('active'); 
0

此行

$(this).parents('li').addClass('active');

你需要運行一個之前函數爲每個'活躍'類和刪除類。 也許是這樣的

$('li').each(function() { 
if($(this).hasClass('active') { 
    $(this).removeClass('active'); 
}); 
} 
+0

你當然不會! – adeneo

+0

這不工作:( – user3108967

+0

呀我不好,試試這個 $( '禮')。每個(函數(){ 如果($(本).hasClass( '主動') {$ (本)。 removeClass('active'); }); } –