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

如何使Jquery子菜单在单击后保持可见?,jquery,Jquery,我读过类似的帖子,但由于我对jquery不是很在行,我需要更多关于菜单的具体帮助 <div id="nav"><!--// START NAV //--> <dl id="nav"> <dt class="nav"><b>ONE</b></dt> <dd> <ul> <li><

我读过类似的帖子,但由于我对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>

$(文档).ready(函数(){
如果($(“#nav”)){
$(“#导航dd”).hide();
$(“#nav dt.nav b”)。单击(函数(){
if(this.className.indexOf(“单击”)!=-1){
$(this.parent().next().slideUp(200);
$(此).removeClass(“单击”);
}
否则{
$(“#nav dt.nav b”).removeClass();
$(此).addClass(“单击”);
$(“导航dd:可见”)。幻灯片(200);
$(this).parent().next().slideDown(500);
}
返回false;
});
}
});

谢谢

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

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

更新:

您可以将选定的url存储在Cookie中。这是:


哇,谢谢Gor,但是现在链接没有点击/打开页面?如果您不想在点击项目时折叠菜单,只需在服务器端保持状态或通过ajax加载内容(无页面刷新)或者将状态保存在cookies/本地存储上。我不知道如何实现这三个建议中的任何一个。我希望像您发布的代码这样的一点代码可以做到这一点?我明天将发布示例“如何使Jquery子菜单在单击后保持可见?”
$(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();
});