我有一个带有如下菜单的 asp.net 母版页:
<menu id="menu">
<nav id="main_nav">
<ul id="menu-primary">
<li ><a href="./">Home</a></li>
<li><a href="staff.aspx">Staff</a></li>
<li><a href="">Sales</a></li>
<li><a href="">Support</a></li>
<li><a href="">Administration</a></li>
</ul>
</nav>
</menu>
在母版页中,我想更改单击的菜单项的 css。我有这个jQuery:
<script type="text/javascript">
jQuery(document).ready(function () {
$('ul li a').each(function () {
var text_splited = $(this).text().split(" ");
$(this).html("<span>" + text_splited.shift() + " " + text_splited.join(" ") + "</span> ");
});
// click on the first item on page load
$('#menu-primary li').eq(0).click();
$('#menu-primary li').click(function (e) {
alert('here');
// remove all active classes
$('#menu-primary li').removeClass('current-menu-item');
// add active class to clicked item
$(this).addClass('current-menu-item');
});
});
</script>
这是CSS
nav#main_nav ul li.current-menu-item a,
nav#main_nav ul li a:hover {background: url("../images/menu_bg.png") no-repeat scroll 0 -149px transparent; border-bottom:1px solid #edf7ff}
nav#main_nav ul li.current-menu-item a span,
nav#main_nav ul li a:hover span{background: url("../images/menu_bg.png") no-repeat scroll 100% -118px transparent;}
这个有效:
// 点击页面加载的第一项 $('#menu-primary li').eq(0).click();
$('#menu-primary li').click(function (e) {
// remove all active classes
alert($('#menu-primary li').html());
$('#menu-primary li').removeClass('current-menu-item');
// add active class to clicked item
$(this).addClass('current-menu-item');
return false;
});
但是页面没有加载,因为 efunction 返回 false。
显示警报,但 css 未应用于单击的项目。