我遇到一些关于我用来突出显示用户选择的菜单项的jQuery的问题。
这是我的代码(在Site.Master中):
<script type="text/javascript">
$(function () {
$('#horizontalmenu ul li a').live('click', function () {
$('#horizontalmenu ul li').removeClass('current');
$(this).closest('li').addClass('current');
});
});
</script>
当我使用Firebug进行跟踪时,这是有效的,但是类被更改,然后页面重新加载,我失去了类更改。我在这里做错了什么?
答案 0 :(得分:0)
您的网页是否需要重新加载?如果没有,请在事件处理程序中传入一个事件对象并调用stopPropagation()
,这样就不会重新加载页面。
<script type="text/javascript">
$(function () {
$('#horizontalmenu ul li a').live('click', function (event) {
$('#horizontalmenu ul li').removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});
</script>
答案 1 :(得分:0)
我认为当您重新加载页面时,文档会重新加载,您丢失了所有上次更改。 我想要突出显示菜单项,您应该使用cookie来保存当前菜单项索引。 但我在我的网站上使用了另一个代码:
$(".menu li a").each(function() {
$(this).removeClass();
if (document.location.href.indexOf($(this).attr("href")) > 0)
{
$(this).addClass("menuactive");
}
});