2013-07-19 57 views
0

這是上一個問題的後續內容。我想要實現的是在點擊一個將會呈現一個新頁面的錨標記後向li元素添加一個類。所以我明白,當頁面重新加載新的HTML被加載,我的addclass方法將被遺忘。在新頁面添加課程到li

所以我一直在尋找這個,它似乎仍然有辦法做到這一點與jQuery的?希望有人能澄清也許還是讓我知道什麼是錯用以下

所以這就是我.....

導航欄

<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'); 
    } 
}); 

雖然這不工作。任何人都可以解釋爲什麼?或在代碼中看到錯誤,我最初的想法是我需要找到最接近當前li的?

任何幫助表示讚賞

感謝

+2

你能否用實際呈現的HTML代替你的'Navbar'源代碼?謝謝 – DevlshOne

+0

你調試了代碼,看看addClass是否被執行? – Adil

+0

道歉,添加呈現HTML – Richlewis

回答

2

只要把1號線HREF變量之後。

console.log(href) 

你會很容易理解那裏出了什麼問題。 你需要在控制檯中看到這個。如果你不知道這個,然後使用以下。

alert(href) 
+1

我認爲這應該是一個評論 – NibblyPig

+0

啊好,所以console.log(href)給/,這是未定義的 – Richlewis

+0

所以在href中使用絕對路徑。讓你獲得完整的路徑。 –

0

那麼,如果你從一個標籤採取href,也許你應該從頁面也採取href? if (href === window.location.href)無論如何,我很確定問題是在if條件。