jQUERY - аккордеонный активный статус кода asp.net позади - PullRequest
3 голосов
/ 24 августа 2009

Может кто-нибудь сообщить мне, как сохранить панель активного состояния jquery accordion при смене страниц. В идеале я хотел бы изменить код, но очень рад, что он работает.

развивается в asp.net 3.5

Надеюсь, это поможет

Спасибо

Ответы [ 4 ]

3 голосов
/ 24 августа 2009

Пример здесь . Если вы выберете один из заголовков аккордеона, то обновите страницу. По умолчанию открывается последняя панель, на которой вы щелкнули.

Я вижу это как чистую ответственность клиента. Я бы сохранил информацию в плагине cookie здесь , который вы можете прочитать и передать конструктору аккордеона. Я бы предпочел это, а не передавать значения на сервер и без него.

Что-то в этом роде

//get persisted active accoridan index
var activeIndex  = $.cookie('accordianActiveIndex');

//guard code here to check you have a valid activeIndex...

$('.selector').accordion({
       active: activeIndex,
       change: function(event, ui) { 
           //set cookie here to new active header (index)
           $.cookie('accordianActiveIndex', ui.newHeader.prevAll().length)
      }
});
2 голосов
/ 11 августа 2010

Для тех, у кого похожая проблема с получением файлов cookie для работы с jQuery UI Accordion, я решил эту проблему, добавив одну строку в код redsquare.

Значение cookie activeIndex необходимо проанализировать как целое число:

//get persisted active accoridan index
var activeIndex  = $.cookie('accordianActiveIndex');
activeIndex = parseInt(activeIndex, 10);

//guard code here to check you have a valid activeIndex...

$('.selector').accordion({
       active: activeIndex,
       change: function(event, ui) { 
           //set cookie here to new active header (index)
           $.cookie('accordianActiveIndex', ui.newHeader.prevAll().length)
      }
});
1 голос
/ 11 августа 2010

А вот еще один способ сохранить состояние аккордеона пользовательского интерфейса с помощью плагина cookie.js :

(источник)

var accordion = $("#accordion");
var index = $.cookie("accordion");
var active;
if (index !== null) {
    active = accordion.find("h3:eq(" + index + ")");
} else {
    active = 0
}
accordion.accordion({
    header: "h3",
    event: "click hoverintent",
    active: active,
    change: function(event, ui) {
        var index = $(this).find("h3").index ( ui.newHeader[0] );
        $.cookie("accordion", index, {
            path: "/"
        });
    },
    autoHeight: false
});
0 голосов
/ 02 октября 2010

Я просто использую

$( ".selector" ).accordion({ navigation: true });

, который поддерживает статус выбранной опции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...