使用jQuery突出显示菜单 - 在POST时不起作用

时间:2010-07-20 17:37:01

标签: jquery

我遇到一些关于我用来突出显示用户选择的菜单项的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进行跟踪时,这是有效的,但是类被更改,然后页面重新加载,我失去了类更改。我在这里做错了什么?

2 个答案:

答案 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");
} 
});