2017-04-10 39 views
0

我在與下面的代碼一個問題:活動類添加到菜單基於URL而不是父母

$(function() { 
    var links = $('.menu li a'); 
    var page_url = location.href; 

    links.each(function(){ 
     var link_url = $(this).attr('href'); 

     if(page_url.indexOf(link_url) !== -1) { 
      $(this).parent().addClass('active'); 
     } 
    }); 
}); 

基本上發生了什麼事,我有我的網站上側菜單:

主頁:/主頁面

子頁面:/子頁面

子頁面:/子頁面

子頁面:/子頁面

然而,當我在子頁面的代碼也將活動類的主網頁,其中的URL是主頁例子父裏面:

例子.com /主頁/子頁面

我需要將活動類添加到子頁面而不是父級。

回答

0

你應該拆分網址如下:

splitted_url = page_url.split("/"); 

得到它(所以這將是最後一頁/子頁面到網址層次根據您的URL規則),並做最後一部分與URL的最後一部分,你的條件如下:

if(splitted_url[splitted_url.length - 1].indexOf(link_url) !== -1) { 
      $(this).parent().addClass('active'); 
     } 
+0

沒有工作,但我已經使用了一些你的代碼並修復了,所以謝謝! 基本上我不得不拆分菜單項上的鏈接url也 – dank

+0

那麼,什麼是到你的問題沒有指定link_url,不能建議你這樣做,不知道:)你能接受答案(你的)通知大家,沒有必要進一步幫助你? – Sorikairo

+0

明天我只能接受我的答案......但無論如何要感謝;) – dank

0

我使用上述建議,因爲它不能正常工作實現了一些變化,我不得不分割上的鏈接的href和它們相匹配,那麼它工作的很好

$(function() { 
    var links = $('.menu li a'); 
    var page_url = location.href; 
    var splitted_url = page_url.split("/"); 

    links.each(function(){ 
     var link_url = $(this).attr('href'); 
     var splitted_link = link_url.split("/"); 
     link_url = splitted_link[splitted_link.length -1]; 
     if(splitted_url[splitted_url.length - 1] == link_url) { 
      $(this).parent().addClass('active'); 
     } 
    }); 
}); 
相關問題