2013-11-13 4 views
1

Я пробовал несколько сценариев jQuery, чтобы моя навигация имела активное состояние каждой кнопки, когда пользователь находится на каждой странице.jQuery активная ссылка текущая страница

Мой навигации выглядит следующим образом: http://jsfiddle.net/EWhS3/

или

<div id="wrapper"> 
     <div id="header"> 
      <img src="img/logo.png"> 
     </div> 
     <!--header END--> 
     <div id="nav"> 
      <ul>   
       <li><a href="index.php" class="select">Profil</a></li> 
       <li><a href="referencer.php" class="pushlinks" class="select">Referencer</a></li> 
       <li><a href="projekter.php" class="pushlinks" class="select">Projekter</a></li> 
       <li><a href="galleri.php" class="pushlinks" class="select">Galleri</a></li> 
       <li><a href="blog.php" class="pushlinks" class="select">Blog</a></li> 
       <li><a href="#" class="pushlogin" class="select">Login</a></li> 
      </ul> 
     </div> 
     <!--nav END--> 
     <div id="content"> 
     </div> 
    </div> 

Я хочу, чтобы парить эффект будет оставаться активным, когда пользователь посещает каждую страницу.

Я действительно надеюсь, что кто-то может дать мне идею для этого. Я попробовал несколько вещей, но на самом деле не мог заставить его работать :(

Заранее спасибо;)

ответ

1

Попробуйте

jQuery(function() { 
    var page = location.pathname.split('/').pop(); 
    alert(page) 
    $('#nav li a[href="' + page + '"]').addClass('active') 
}) 

Также измените hover & active правило

#nav ul li a:hover, #nav ul li a.active { 
    ... 
} 

Демонстрация: Fiddle

+0

Это не работает :( только первая ссылка активна, и она имеет ошибку, как текст ссылка должна быть фиолетовыми в то время как активен, так как это тот же эффект, что и наведение. При нажатии на другие ссылки он не делает текущую страницу im im active – Kh4zy

+0

@ user2985592 при переходе на новую страницу, перезагружается ли страница или вы используете ajax для загрузки новых страниц. –

+0

Его единственный, когда я нажал первая ссылка. У меня нет опыта работы с jQuery. Я использую jquery-1.9.1.min.js – Kh4zy

0
<div id="nav"> 
     <ul>   
      <li id="nav1"><a href="index.php">Profil</a></li> 
      <li id="nav2"><a href="referencer.php" class="pushlinks" class="select">Referencer</a></li> 
      <li id="nav3"><a href="projekter.php" class="pushlinks" class="select">Projekter</a></li> 
      <li id="nav4"><a href="galleri.php" class="pushlinks" class="select">Galleri</a></li> 
      <li id="nav5"><a href="blog.php" class="pushlinks" class="select">Blog</a></li> 
      <li id="nav6"><a href="#" class="pushlogin" class="select">Login</a></li> 
     </ul> 
    </div> 

<script type="text/javascript">//<![CDATA[ 
$('#nav1').addClass('active'); 
    //]]></script> 


div#nav ul li.active{ 
/*your style */ 
} 
5

Вы можете сделать это легко

<script type="text/javascript"> 
    var loc = window.location.pathname; 

    $('#nav').find('a').each(function() { 
    $(this).toggleClass('active', $(this).attr('href') == loc); 
    }); 
</script> 

CSS:

#nav a.active{color: red} 
+0

Дубликат http://stackoverflow.com/a/9863488/383904 ... –

Смежные вопросы