Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery Accordion,在刷新/页面更改时保持打开状态_Javascript_Jquery_Jquery Ui_Accordion_Jquery Ui Accordion - Fatal编程技术网

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

Javascript Jquery Accordion,在刷新/页面更改时保持打开状态,javascript,jquery,jquery-ui,accordion,jquery-ui-accordion,Javascript,Jquery,Jquery Ui,Accordion,Jquery Ui Accordion,我为我的jquery手风琴尝试了这段代码 (function(jQuery){ jQuery.fn.extend({ accordion: function() { return this.each(function() { var $ul = $(this); if($ul.data('accordia

我为我的jquery手风琴尝试了这段代码

        (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);
但当我刷新页面时,所有的手风琴都崩溃了。
但当我刷新页面时,我需要它。保持选中的手风琴打开,因为我的手风琴是放置在Include(php)中的侧导航。所以一个php文件用于全方位手风琴导航,所以每当我点击菜单时,页面应该被更改并保持选定的手风琴打开。

他不必使用cookie,他可以使用web存储:

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

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

1.HTML 5的本地存储

2.饼干

3.隐藏字段

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

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

然后检查文档中是否有保存的值,并打开手风琴

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

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

您必须设置一个cookie,记录手风琴是否打开或关闭。然后当页面加载时,读取cookie并相应地打开/关闭手风琴。看看jquery.cookie插件。@MikeOram谢谢你,迈克,你能提供它的链接或来源以及如何设置cookie吗?需要JqueryUI吗?当然,你可以从github下载,这个页面上的自述文件有所有的安装和使用说明,非常简单:@MikeOram有没有使用jQueryCookie的y工作示例?我前几天写了这个脚本,它基本上符合你的要求,我相信。它至少展示了如何使用jquery.cookie我如何在代码中使用它?对不起,我是Jquery新手。因此,如果可以的话,尽管web存储比Cookie更快、更安全,但它不受支持