Javascript Jquery Accordion,在刷新/页面更改时保持打开状态
我为我的jquery手风琴尝试了这段代码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
(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更快、更安全,但它不受支持