2015-11-04 65 views
1

我有一個側邊欄,我試圖用Javascript來改變外觀以及點擊目標頁面。不過,我嘗試了很多建議,但沒有運氣,我不明白爲什麼。添加課程「活動」到菜單

JsFiddle

我試着用這個JS代碼:

$(document).ready(function() { 
    var url = window.location; 
    $('.navigation ul li a[href="'+url+'"]').parent().addClass('active'); 
}); 

但是,一旦我添加了一個href="~/~"屬性,我得到一個"Unknown Command: [Link in href]" - 和"active"類不會被添加到元素。

感謝您的時間

回答

1

您正在嘗試使用window.location獲得當前頁面的URL。但是,window.location實際上是一個對象,它包含多個屬性,並不是包含當前頁面URL的字符串。您需要使用window.location屬性之一,最有可能的是window.location.pathname。但是,請參閱https://developer.mozilla.org/en-US/docs/Web/API/Location以獲取完整的選項列表。

+0

Window.location.pathname;解決了這個問題,感謝您的幫助 – PublicDisplayName

0

爲您的代碼,你需要的URL設置爲var url = window.location.host+window.location.path';

+0

請考慮編輯您的帖子,添加更多關於您的代碼的解釋以及爲什麼它可以解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – Drenmi

0

試試這個,

var url = window.location; 
// Will only work if string in href matches with location 
$('.navigation ul li a[href="'+ url +'"]').parent().addClass('active'); 

// Will also work for relative and absolute hrefs 
$('.navigation ul li a').filter(function() { 
    return this.href == url; 
}).parent().addClass('active');