2009-11-01 159 views
1

下面我已經列入我使用的嘗試將CS​​S類添加到該等於現用URL的側欄的鏈接jQuery代碼CSS類,但它不工作,並在某些時候的確如此。 在此先感謝您提供的任何幫助。添加使用JQuery

鏈接:http://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/

<script type="text/javascript"> 
$(document).ready(function(){ 
     $("ul.right_submenu > li > a").each(function() { 
      if ($(this).attr("href") == location.href) 
      { 
        $(this).addClass("CurrentProject"); 
      }); 
}; 
</script> 
+0

我想這個問題是在這裏:$(本).attr(「HREF」)== location.href - URL的一個可能是標準化/解決 – amartynov 2009-11-01 17:56:28

回答

0

你在你的腳本沒有結束的括號:

$(document).ready(function(){ 
    $("ul.right_submenu > li > a").each(function() { 
     var a = $(this); 
     if (a.attr('href') == location.href) { 
      a.addClass("CurrentProject"); 
     } 
    }); 
}); 

,你可以重寫你的腳本是這樣的:

$('ul.right_submenu > li > a[href=' + location.href + ']') 
    .addClass('CurrentProject'); 
+0

嗨, 如果你去liquidcomma.com和你請參閱案例研究部分我嘗試了您提供的較短代碼作爲替代解決方案,但似乎沒有任何事情發生。這很奇怪,因爲你提供的兩個例子看起來都很完美。 – jsuissa 2009-11-03 04:09:53

5

那麼,除了這些代碼缺失大括號和parens它可以做得更簡單:

$(function(){ 
    $("a[href^='" + location.href + "']").addClass("CurrentProject"); 
}); 
+0

我已經做了更改,以解決米格爾在選擇關注,「^ =」現在將只匹配HREF的是開始,與當前位置的URL。 – joshperry 2009-11-01 18:48:06

+0

交換^ =與$ = ..分別開始和結束。 – Aaron 2009-11-02 02:33:21

0

按照你的鏈接,我的location.hrefhttp://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/但在頁面指向http://www.liquidcomma.com/portfolio/project/trade_show_fabrications/1項目鏈接...,這將使attr('href') != location.href

在其他鏈接中,location.href將以斜線結尾,而鏈接的href不會。

你應該用別的東西來匹配比href屬性之外的其他項目,如果你希望它在未來的變化(很可能會)。