【发布时间】:2012-10-06 11:13:39
【问题描述】:
我有一个带有如下菜单的 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;
});
但是页面没有加载,因为函数返回 false。
显示警报,但 css 未应用于单击的项目。
【问题讨论】:
-
看起来不错,您确定在 CSS 中设置
current-menu-item的样式吗?一个指向您页面的链接会很棒。 -
@Abody97 是的,我的 CSS 中有当前菜单项。页面尚未上线
-
请给我们看看你的 CSS 好吗?
-
@Abody97 请使用 css 检查更新的问题
标签: javascript jquery asp.net css