我是MVC中的新手。我面临一个小问题,我无法弄清楚如何做。
单击菜单中的名称时,我希望单击的<li>
标签的类名为"活动"。
<li><a href="#">Home</a></li>
<li><a href="#">Our Menu</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="#">Store</a></li>
<li><a href="#">Contact</a></li>
例如:当我单击"博客"时,我希望它像这样:<li class="active"><a href="#">Blog</a></li>
或单击"存储" <li class="active"><a href="#">Store</a></li>
有一种简单的方法吗?如果是,如果它不会打扰您,您会与我分享吗?谢谢。
由于您使用的是jQuery
,因此可以使用其AddClass和Removeclass方法。但是首先,您需要订阅<li>
元素的点击事件。$(document).ready()
处理程序是这样做的理想场所:
$(document).ready(function () {
// narrow down the selector by specifying the parent ul element's id or class
$("li").on("click", function(e) {
var sender = $(e.target).closest("li");
sender.siblings(".active").removeClass("active");
sender.addClass("active");
});
});
您可以轻松地编写几行JavaScript代码(菜单之后)以检查当前页面的URL:
<div id='menu'>
<li><a href="#">Home</a></li>
<li><a href="#">Our Menu</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="#">Store</a></li>
<li><a href="#">Contact</a></li>
</div>
var href = window.location.href;
var menu = document.getElementById('menu');
if(href == 'SOME THING')
menu.children[0].className = 'active';
if(href == 'SOME THING ELSE')
menu.children[1].className = 'active'; ///.....
,如果您与链接中的URL和文本之间有任何关系(家庭,我们的菜单,博客...),请更容易填充相关菜单...
更好地理解您的问题下的"乔纳森·伍德"的评论。