我为我的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打开。
答案 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();
}
}));