基本上,我試圖將類active
添加到當前菜單項。我成功地使用了以下jQuery代碼。單擊當前頁面上的鏈接後,保持菜單項處於活動狀態
jQuery(document).ready(function($){
var path = window.location.href;
$('#nav-main li a').each(function() {
if (this.href === path) {
$(this).addClass('active');
}
});
});
我的導航欄上看起來是這樣的:
<ul id="nav-main">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/brands">Brands</a>
</li>
<li>
<a href="/users">Users</a>
</li>
<li>
<a href="/employees">Employees</a>
</li>
</ul>
它具有以下CSS:
ul#nav-main {
width: 1050px;
margin: 0 auto;
color: #fff;
}
ul#nav-main li {
margin: 0 5px 0 5px;
list-style-type: none;
text-align: center;
display: inline-block;
font-size: 17px;
}
ul#nav-main li a {
padding: 0 15px;
line-height: 2.692307692;
display: inline-block;
text-decoration: none;
color: #fff;
}
ul#nav-main li a:hover {
background-color: rgba(0, 0, 0, 0.3);
}
ul#nav-main li a.active {
background-color: rgba(0, 0, 0, 0.3);
}
現在,當我點擊 '用戶' 我去/users
和jQuery的代碼成功添加active
類,以便'用戶'顯示爲導航欄中的當前菜單項。但是,當我點擊導航到例如/users/view/12345
(其中12345
是用戶的ID)的'用戶'頁面上的鏈接時,'用戶'頁面不再顯示爲當前菜單項目。
我認爲這與jQuery代碼僅查找nav-main li a
而不是其他a
的頁面上的事實有關。有什麼我可以添加到我的jQuery代碼,使其工作?
我認爲這取決於這個'if(this.href ===路徑)'當你在'/ users/view/12345'時沒有更多的身份。 但我很誠實,我不完全確定,JavaScript這不是我最好的。 無需等待,當然,只有當您點擊'nav-main li'中的鏈接時,您的代碼纔有效。你定義了jquery以這種方式行事。 – maurelio79
我一直在想,爲這兩個事實尋找解決方法,但無法想到或找到使其工作的東西。 – SomeCode