2013-10-28 28 views
0

菜單鏈接時,我想激活或點擊使用jQuery菜單鏈接時添加類活躍在菜單標籤鏈接和: 我有HTML激活或添加上的菜單的選項卡鏈接類主動點擊使用jQuery

<div id="top" class="shadow"> 
<ul class="gprc"> 
<li><a href="http://www.domain.com/">Home</a></li> 
<li><a href="http://www.domain.com/link1/">Text1</a></li> 
<li><a href="http://www.domain.com/link2/">Text2</a></li> 
<li><a href="http://www.domain.com/link3/">Text3</a></li> 
<li><a href="http://www.domain.com/link4">Text4</a></li> 
</ul> 
</div> 

我發現下面的腳本是這樣做的。 JQuery的

$(document).ready(function(){ 
    $(function(){ 
    var url = window.location.pathname, 
    urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); 
    $('a').each(function(){ 
    if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
    $(this).addClass('active'); 
    } 
}); 
}); 
}); 

只是它會爲整個網頁,我怎麼可能只對我張貼在HTML指定的菜單做。

回答

1

你可以這樣做:

$(function() { 
    var url = window.location.pathname, 
     urlRegExp = new RegExp(url.replace(/\/$/, '') + "$"); 
    $('#top a').each(function() { 
     if (urlRegExp.test(this.href.replace(/\/$/, ''))) { 
      $(this).addClass('active'); 
     } 
    });  
}); 

添加active類與IDtopdiv只有適當的鏈接,使用正確的選擇$('#top a'),而不是在頁面上的所有鏈接上實現它。

+1

有一個問題,當我點擊「家」或link1我得到所有活動選項卡。 – Adrian

+0

@Adrian我有同樣的問題。我通過在兩個地方刪除「.replace(/ \/$ /,'')」來解決它。 – trojan

1

您可以指定要用於該工作只有在它裏面「GPRC」 UI元素一個錨元素這樣的:

$('.gprc a').each(function(){ 
    if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
    $(this).addClass('active'); 
    } 
}); 
1

試試你的選擇範圍界定到菜單的專區內唯一的錨標記。

如:

$(document).ready(function(){ 
    $(function(){ 
    var url = window.location.pathname, urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); 
    $('#top a').each(function(){ 
     if(urlRegExp.test(this .href.replace(/\/$/, ''))){ 
     $(this).addClass('active'); 
     } 
    }); 
    }); 
}); 
相關問題