jquery垂直菜单崩溃问题

时间:2013-07-01 11:35:05

标签: jquery navigation

首先,我是一个完整的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();
        }
    })
})

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你可以使用cookies,但我建议不要使用它们来做这么简单的事情。

只需在网址中添加一个哈希标记,然后让菜单对其做出反应。

点击事件触发时,使用如下字符串触发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手风琴作为初学者可能会更容易,因为大部分工作已经完成。