Jquery Accordion,在刷新/页面更改时保持打开状态

时间:2013-10-01 10:08:02

标签: javascript jquery jquery-ui accordion jquery-ui-accordion

我为我的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打开,因为我的手风琴是侧向导航放置在Include(php)中。所以一个用于所有侧面的手风琴导航的php文件,所以每当我点击菜单时,页面都应该更改并保持选中的Accordion打开。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

  

1. HTML 5的本地存储

     

2.Cookie

     

3.Hidden Field

     

//用于长时间保持所选值。

     

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

然后检查文件是否准备就绪,并打开手风琴

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

 if($.trim(selectedaccordianId) != "")
{
 $("#" + selectedaccordianId).show(); 
}
}));
相关问题