0

我为我的 jquery Accordion 尝试这段代码

        (function(jQuery){
         jQuery.fn.extend({  
             accordion: function() {       
                return this.each(function() {

                    var $ul = $(this);

                    if($ul.data('accordiated'))
                        return false;

                    $.each($ul.find('ul, li>div'), function(){
                        $(this).data('accordiated', true);
                        $(this).hide();
                    });

                    $.each($ul.find('a'), function(){
                        $(this).click(function(e){
                            activate(this);
                            //alert(this);
                            return void(0);
                        });
                    });
                    var sPath = window.location.pathname;
                    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
                    var findvar=sPage;
                    var active = (findvar)?$(this).find('a[href='+ findvar + ']')[0]:'';

                    if(active){
                        activate(active, 'toggle');
                        $(active).parents().show();
                    }

                    function activate(el,effect){
                        $(el).parent('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('fast');
                        $(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect)?'fast':null);
                    }

                });
            } 
        }); 
    })(jQuery);

但是当我刷新页面时,所有手风琴都崩溃了。但是当我刷新页面时我想要那个。保持选中的 Accordion 打开,因为我的 Accordion 是放置在 Include (php) 中的侧边导航。所以一个用于所有侧面手风琴导航的 php 文件,所以每当我点击菜单时,页面应该改变并保持选定的手风琴打开。

4

3 回答 3

0

html 是无状态的,因此您应该保留您的页面或手风琴状态,如果您发布您的页面,请将您的最新状态隐藏在您的服务器端阅读此状态并将其发送回您的页面现在在您的页面加载设置您的手风琴状态应该是

于 2013-10-01T10:20:39.067 回答
0

他不必使用 cookie,他可以使用网络存储:http ://www.w3schools.com/html/html5_webstorage.asp

于 2013-10-01T10:19:53.210 回答
0

如果您想为该特定会话保留选定的手风琴数据,那么您可以按以下顺序使用任何存储技术

1.HTML 5的本地存储

2.饼干

3.隐藏领域

//用于长时间保持选定的值。

4.数据库(可以使用ajax调用将值保存在数据库中)

然后检查文档中是否存在任何已保存的值并打开该手风琴

$(document.ready(function(){
var selectedaccordianId = $("#hidSavedAccordinId").val();

 if($.trim(selectedaccordianId) != "")
{
 $("#" + selectedaccordianId).show(); 
}
}));
于 2013-10-01T10:24:00.440 回答