2015-07-28 4 views
-2

Я совершенно новый здесь и в jQuery, но я искал связанные вопросы в stackoverflow, но никто не решает мою проблему. У меня есть этот код:Добавление активного класса в ссылку через jQuery

Html:

<div class="menu"> 
    <div class="menu-items"> 
     <ul class="nav"> 
     <li class="var_nav"> 
      <a href="../home.php">Home</a> 
     </li> 
     <li class="var_nav"> 
      <a href="../portfolio.php">Porfolio</a> 
     </li> 
     <li class="var_nav"> 
      <a href="../dashboard.php">Dashboard</a> 
     </li> 
     <li class="var_nav"> 
      <a href="../users.php">Users</a> 
     </li> 
     </ul> 
    </div> 
</div> 

CSS

.nav li.active { 
    background-color: #048abb; 
} 
.nav li.active a { 
    color: #fff; 
} 

Я хочу, чтобы применить класс .active к (активный ток /) ссылка щелкнутой так, что CSS может вступить в силу. Любые предложения о том, как применить класс для чтения html-кода через jQuery?

+1

Это был дан ответ много раз ранее т.е. HTTP: //stackoverflow.com/questions/19520446/add-and-remove-a-class-on-click-using-jquery – DAC84

ответ

1
var $links = $('.nav a').on('click', function(e) { 
    e.preventDefault(); 

    $links.removeClass('active'); 
    $(this).addClass('active'); 
}); 
+0

jmar777 Код вышеперечисленного делает ссылки неактивными – Zollo

+0

@ Zollo хорошо, если вы планируете следовать ссылкам , почему бы вам возиться с классами? Если ссылки фактически выполняют навигацию, вы должны установить имя класса на стороне сервера. – jmar777

0
$(document).ready(function(){ 
    $('.nav').on('click', 'a', function(e) { 
     e.preventDefault(); 
     $('.active).removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
0

Как CSS, кажется, обратиться к «активный» класс применяется к элементам LI, это следует сделать трюк:

$(document).ready(function() { 

    $('.nav a').click(function(e) { 

    //optional - override the link - uncomment the following line: 
    //e.preventDefault(); 

    //remove the active class from all li elements 
    $('.nav li').removeClass('active'); 

    //add it to the li element holding the clicked link 
    $(this).parent('li').addClass('active'); 

    }); 

});