2013-07-19 4 views
0

Это из предыдущего вопроса. То, что я хочу достичь, - добавить класс к элементу li после нажатия на тег привязки, который будет отображать новую страницу. Поэтому я понимаю, что когда страница перезагружает новый HTML-файл, и мой метод addclass будет забыт.Добавить класс в li на новой странице

Так что я изучал это, и кажется, что есть еще способ сделать это с помощью jquery? надеялся, что кто-то мог, возможно, уточнить или дайте мне знать, что случилось со следующей

Итак, это то, что я есть .....

Navbar

<ul id="main-menu" class="clearfix sf-js-enabled sf-arrows"> 
     <li> 
      <a href="/"><i class="icon-home"></i> Home</a> 
     </li> 

     <li> 
      <a href="/pages/aboutme"><i class="icon-desktop"></i> About Me</a> 
     </li> 

     <li> 
      <a href="/pages/portfolio"><i class="icon-picture"></i> Portfolio</a> 
     </li> 

     <li> 
      <a href="/blog"><i class="icon-comments"></i> Blog</a> 
     </li> 

     <li> 
      <a href="/contact"><i class="icon-envelope"></i> Contact</a> 
     </li> 
     </ul> 

Jquery

$('#main-menu li').each(function() { 
    var href = $(this).find('a').attr('href'); 
    if (href === window.location.pathname) { 
    $(this).addClass('current-menu-item'); 
    } 
}); 

Хотя это не работает. Может ли кто-нибудь объяснить, почему? или увидеть ошибку в коде, мои первоначальные мысли, которые мне нужно найти ближе всего к текущему ли?

Любая помощь приветствуется

Спасибо

+2

Не могли бы вы заменить исходный код «Navbar» на фактический визуализированный HTML? Спасибо – DevlshOne

+0

Вы отлаживали код, чтобы узнать, выполняется ли addClass? – Adil

+0

извинения, добавлен визуализированный HTML – Richlewis

ответ

2

Просто поместите на 1 строку после HREF переменной.

console.log(href) 

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

alert(href) 
+1

Я думаю, что это должен быть комментарий – NibblyPig

+0

ah ok, поэтому console.log (href) дает /, который не определен – Richlewis

+0

Так что используйте абсолютный путь в href. так что вы получите полный путь. –

0

Ну, если вы берете href из тега, возможно, вам следует взять href также со страницы? if (href === window.location.href) В любом случае, я уверен, что проблема в условии if.

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