-1

首先,我是一个完整的 jquery 入门者,我需要修改脚本。现在我有子菜单,当我打开它并打开链接时,它会崩溃,我想要的是当我打开子菜单项链接时,页面重新加载时子菜单仍然会打开,是否可能

这是我正在使用的菜单脚本的链接http://thecodeplayer.com/walkthrough/vertical-accordion-menu-using-jquery-css3

/*jQuery time*/
$(document).ready(function(){
    $("#accordian h3").click(function(){
        //slide up all the link lists
        $("#accordian ul ul").slideUp();
        //slide down the link list below the h3 clicked - only if its closed
        if(!$(this).next().is(":visible"))
        {
            $(this).next().slideDown();
        }
    })
})
4

2 回答 2

1

我更愿意添加和删除类

    $(document).ready(function(){
        $("#accordian").each(function(position){
            var container = $(this);
            var containerId = container.attr("id");
            if (! containerId){
                  container.attr("id", position);
                  containerId = position; 
            }
            if ($.cookie('expanded_'+ containerId) == 'true')
                container.addClass("expanded");
        });
        $("#accordian h3").click(function(){
            //slide up all the link lists
            var title = $(this);
            var container = title.closest("div");
            var containerId = container.attr("id");

            if (container.hasClass("expanded")){
                container.children("ul").slideUp();
                container.removeClass("expanded");
                $.cookie('expanded_'+ containerId,'false')
            } else {
                container.children("ul").slideDown();
                container.addClass("expanded");
                $.cookie('expanded_'+ containerId,'true')
            }    
        })
    })

页面重新加载问题与 cookie http://lineadecodigo.com/jquery/usando-cookies-con-jquery/有关

另外,我建议做“手风琴”类而不是 ID

于 2013-07-01T11:44:06.463 回答
0

您可以使用 cookie,但我建议不要将它们用于这么简单的事情。

只需在 URL 中添加一个井号标签并让菜单对其做出反应。

当您的点击事件触发时,使用如下字符串触发 setHash: setHash("task")

function setHash(str)
{
    try
    {
        window.location.hash=str;
    }
    catch(err){/*if you want error reporting add it here*/}
}

然后用这个检查它:

if(window.location.hash == something)
{
    //open menu here
}

我还没有添加手风琴的代码,但你应该可以访问它的 API。还要注意,jQueryUI 有一个折叠所有功能的手风琴:)

http://jqueryui.com/accordion/

作为初学者,使用 jQueryUI 手风琴可能会更容易,因为已经为您完成了很多工作。

于 2013-07-01T12:03:45.760 回答