1

我有一个手风琴菜单:

<ul id="menu">
    <li>
        <a href="#" class="highmenu">Menu1</a>
        <ul class="sub">
            <li class="submenulink">Menu1Link1</li>
            <li class="submenulink">Menu1Link2</li>
        </ul>
    </li>
    <li>
        <a href="#" class="highmenu">Menu2</a>
        <ul class="sub">
            <li class="submenulink">Menu2Link1</li>
            <li class="submenulink">Menu2Link2</li>
        </ul>
    </li>
</ul>

这是我正在使用的 jQuery 脚本:

$(document).ready(function() {
    var pathname = window.location.pathname;
    $("#menu ul").hide();
    $("#menu a[href='" + pathname + "']").parents(".sub").show();
    $("#menu li a").click(function() {
        var checkElement = $(this).next();
        if ((checkElement.is("ul")) && (checkElement.is(":visible"))) {
            return false;
        }
        if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
            $("#menu ul:visible").slideUp("normal");
            checkElement.slideDown("normal");
            return false;
        }
    });
});

我想要的是,当特定子打开时,相应的高级菜单将设置为highmenu active类,当子隐藏时,活动类将被删除。

任何帮助将不胜感激,谢谢!

4

1 回答 1

0

这个怎么样。每次单击链接时,从所有链接中删除所有活动类,然后仅将其应用于适当的类:

var pathname = window.location.pathname;
$("#menu ul").hide();
$("#menu a[href='" + pathname + "']").parents(".sub").show();
$("#menu li a").click(function() {

    $("#menu li a").removeClass("active");
    $(this).addClass("active");

    var checkElement = $(this).next();
    if ((checkElement.is("ul")) && (checkElement.is(":visible"))) {
        return false;
    }
    if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        $("#menu ul:visible").slideUp("normal");
        checkElement.slideDown("normal");
        return false;
    }
});​

在这里工作小提琴:http: //jsfiddle.net/jKGNA/

于 2012-06-07T12:15:33.480 回答