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

使用jQuery突出显示菜单-在POST上不起作用,jquery,Jquery,我在使用jQuery突出显示用户选择的菜单项时遇到了一个问题 这是我的代码(在Site.Master中): $(函数(){ $(“#水平菜单ul li a”).live('单击',函数(){ $(“#水平菜单ul li”).removeClass('current'); $(this).closest('li').addClass('current'); }); }); 当我使用Firebug进行跟踪时,这是可行的,但是类被更改了,然后页面重新加载,我丢失了类更改。我做错了什么?您的页面需要

我在使用jQuery突出显示用户选择的菜单项时遇到了一个问题

这是我的代码(在Site.Master中):


$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
});
});

当我使用Firebug进行跟踪时,这是可行的,但是类被更改了,然后页面重新加载,我丢失了类更改。我做错了什么?

您的页面需要重新加载吗?如果没有,则在事件处理程序中传入一个事件对象并调用
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>

$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(事件){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});

您的页面是否需要重新加载?如果没有,则在事件处理程序中传入一个事件对象并调用
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>

$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(事件){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});

我认为,当您重新加载页面时,文档被重新加载,您丢失了所有上次更改。 如果要突出显示菜单项,应使用cookie保存当前菜单项索引。 但我的网站中使用了另一个代码:

$(".menu li a").each(function() {
$(this).removeClass();
if (document.location.href.indexOf($(this).attr("href")) > 0)
{
    $(this).addClass("menuactive");
} 
});

我认为,当你重新加载页面时,文档被重新加载,你丢失了所有最后的更改。 如果要突出显示菜单项,应使用cookie保存当前菜单项索引。 但我的网站中使用了另一个代码:

$(".menu li a").each(function() {
$(this).removeClass();
if (document.location.href.indexOf($(this).attr("href")) > 0)
{
    $(this).addClass("menuactive");
} 
});