如何使Jquery子菜单单击后保持可见?

时间:2011-02-23 10:46:53

标签: jquery

我已经阅读了类似的帖子,但由于我对jquery不太满意,我需要更多关于菜单的具体帮助。

<div id="nav"><!--// START NAV //-->
    <dl id="nav">
        <dt class="nav"><b>ONE</b></dt>
        <dd>
            <ul>
                <li><a href="/A">A</a></li>
                <li><a href="/B">B</a></li>
                <li><a href="/C">C</a></li>

            </ul>
        </dd>
        <dt class="nav"><b>TWO</b></dt>
        <dd>
            <ul class="nav">
                <li><a href="/D">D</a></li>
                <li><a href="/E">E</a></li>
                 <li><a href="/F">F</a></li>
                </ul>
        </dd>

    </dl>
        </div><!--// END NAV //-->

这是我正在使用的JS。

<script type="text/javascript">
$(document).ready(function(){
    if($("#nav")) {
        $("#nav dd").hide();
        $("#nav dt.nav b").click(function() {
            if(this.className.indexOf("clicked") != -1) {
                $(this).parent().next().slideUp(200);
                $(this).removeClass("clicked");
            }
            else {
                $("#nav dt.nav b").removeClass();
                $(this).addClass("clicked");
                $("#nav dd:visible").slideUp(200);
                $(this).parent().next().slideDown(500);
            }
            return false;
        });
    }
});
</script>

由于

1 个答案:

答案 0 :(得分:1)

由于页面刷新,菜单隐藏。您可以通过添加返回false的单击处理程序来避免它。将此代码添加到ready处理程序:

$("#nav dd ul a").click(function(){
    return false;
})

这是example

<强>更新

您可以将选定的网址存储在Cookie中。这是sample

$(document).ready(function() {
    if ($("#nav")) {
        $("#nav dd").hide();
        $("#nav dt.nav b").click(function() {
            if (this.className.indexOf("clicked") != -1) {
                $(this).parent().next().slideUp(200);
                $(this).removeClass("clicked");
            }
            else {
                $("#nav dt.nav b").removeClass();
                $(this).addClass("clicked");
                $("#nav dd:visible").slideUp(200);
                $(this).parent().next().slideDown(500);
            }
            return false;
        });
    }

    $("#nav dd ul a").click(function() {
        $.cookie('link_href', $(this).attr('href'));
    });

    alert($.cookie('link_href'));

    var selector = 'a[href="'+ $.cookie('link_href') +'"]';
    $(selector).parents('dd').prev().find('b').click();
});