下面的页面有侧边栏和主导航栏。我目前正在使用当前URL来突出显示相应的导航栏。请查看下面的代码:
```html
在这里,当用户点击主导航栏时,基于href,相应的标签会被高亮显示。
当用户在侧边导航栏上单击时,同样的逻辑被用于突出显示侧边导航栏,但为了保持同时高亮显示主导航栏,我会检查url是否包含特定文本。
在这里,每个主导航栏下都有一组相应的侧边导航栏。 js函数highlightSection在页面加载时被调用。
例如,如果用户在主导航栏上选择Home,整个页面将加载,并且基于url,Home选项卡将被突出显示。 现在,当用户在侧边栏上选择Delete时,整个页面将加载,并且基于url,Delete侧边栏将被突出显示。在这里,为了在选中侧边导航栏的Delete选项时保持Home选项卡高亮显示,我会检查url是否包含特定文本。所以,在这个例子中,是否有更好的方法在侧边导航栏被选中时同时保持主导航栏中的Home选项卡高亮显示?
您能否建议一种更好的方法,在用户单击侧边导航栏时同时突出显示主导航栏,而不必检查当前的url?
```html
以下页面既有侧边栏,又有主导航栏。我目前使用当前URL来突出显示相应的导航栏。以下是我使用的代码:
```highlightSection = function() {
var url = location.href.toLowerCase();
$("#navbar li a").each(function() {
if (url == this.href.toLowerCase()) {
$(this).parent().addClass("active");
}
});
$(".nav-sidebar li a").each(function() {
if (url == this.href.toLowerCase()) {
var nav;
if ( url.indexOf('/brand') !== -1 ) {
nav = App.contextPath + "/brand/home";
} else if ( url.indexOf('/Options') !== -1 ) {
nav = App.contextPath + "/Options";
} else if ( url.indexOf('/ratings') !== -1 ) {
nav = App.contextPath + "/ratings/home";
} else {
nav = App.contextPath + "/admin/home";
}
$(this).parent().addClass("active");
$('#navbar li:has(a[href="' + nav + '"])').addClass("active");
}
});
};
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#"> Tool</a>
</div>
<div>
<ul class="nav navbar-nav" id="navbar">
<li><a href="/brand/home">Home</a></li>
<li><a href="/Options">Options</a></li>
<li><a href="/ratings/home">Ratings</a></li>
<li><a href="/admin/home">Admin</a></li>
</ul>
</div>
</div>
</nav>
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li class="active"><a href="#">Add </a>
</li>
<li><a href="#">View/Modify</a>
</li>
<li><a href="#">Delete</a>
</li>
</ul>
</div>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
在这里,每个主导航栏下都有一组相应的侧边导航栏。 js函数highlightSection在页面加载时被调用。
例如,如果用户在主导航栏上选择Home,整个页面将加载,并且基于url,Home选项卡将被突出显示。 现在,当用户在侧边栏上选择Delete时,整个页面将加载,并且基于url,Delete侧边栏将被突出显示。在这里,为了在选中侧边导航栏的Delete选项时保持Home选项卡高亮显示,我会检查url是否包含特定文本。所以,在这个例子中,是否有更好的方法在侧边导航栏被选中时同时保持主导航栏中的Home选项卡高亮显示?
您能否建议一种更好的方法,在用户单击侧边导航栏时同时突出显示主导航栏,而不必检查当前的url?