代码之家  ›  专栏  ›  技术社区  ›  JasCav

使用jQuery高亮显示菜单-在POST上不起作用

  •  0
  • JasCav  · 技术社区  · 14 年前

    我在使用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 回复  |  直到 14 年前
        1
  •  1
  •   hieu    14 年前

    我认为当你重新加载页面时,文档会被重新加载,并且你丢失了所有最后的更改。 但我的网站上还有另一个代码:

    $(".menu li a").each(function() {
    $(this).removeClass();
    if (document.location.href.indexOf($(this).attr("href")) > 0)
    {
        $(this).addClass("menuactive");
    } 
    });
    
        2
  •  0
  •   John Strickler    14 年前

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