Я пробую этот код для своего 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 файл для всех сторон аккордеона навигации, поэтому всякий раз, когда я нажимал на меню, страница должна быть изменена и сохранить выбранный Аккордеон открытым.
Если вы хотите сохранить выбранные данные аккордеона для этого конкретного сеанса, вы можете использовать любую технику хранения в следующем порядке
1. Локальное хранилище HTML 5
2.Cookie
3.Скрытое поле
//Для сохранения выбранного значения в течение длительного времени.
4.Database (вы можете использовать ajax-вызов для сохранения значения в базе данных)
затем проверьте, есть ли сохраненное значение в готовом документе и сделайте этот аккордеон открытым
$(document.ready(function(){
var selectedaccordianId = $("#hidSavedAccordinId").val();
if($.trim(selectedaccordianId) != "")
{
$("#" + selectedaccordianId).show();
}
}));
html не имеет гражданства, поэтому вы должны сохранять свою страницу или состояние аккордеона, если вы публикуете свою страницу, сохраняйте свой последний статус в скрытом. На вашей стороне сервера прочитайте этот статус и отправьте его на свою страницу. Теперь на вашей странице загрузился статус вашего аккордеона как и должно быть
Ему не нужно использовать cookie, он может использовать веб-хранилище: http://www.w3schools.com/html/html5_webstorage.asp