2010-10-05 3 views
3

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

$.post('<%= ResolveUrl("~/Contract/AddContractLocation") %>', $(form).serialize(), function (data) { 
     if (data.Result == "success") { 
       ... yada yada... 
       window.location.reload(); 
     } 

Редактировать добавить:

Это, как я инициализировать гармошку:

$("#acc").accordion({ 
     autoHeight: false, 
     navigation: true 
}); 

Это основная структура:

<fieldset> 
    <legend>Contract</legend> 

    <div id="acc"> 
     <h3><a href="#contractinfo">Contract Info</a></h3> 
     <div> 
      stuff 
     </div> 
     <h3><a href="#locationandrs">Locations and Ratesheets</a></h3> 
     <div> 
      stuff 
     </div> 
     <h3><a href="#auditibleterms">Auditable Terms</a></h3> 
     <div> 
      stuff 
     </div> 
     <h3><a href="#contractdocs">Contract Docs</a></h3> 
     <div> 
      stuff 
     </div> 
    </div> 
</fieldset> 

ответ

3

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

var substr = window.location.href.split('#'); 
window.location.href = substr[0] + "#locationandrs"; 
window.location.reload(); 
1

Вы можете установить active опция true для возвращаемого значения? Вам нужно нажать «Опции» из ссылки, но вот документы:

Селектор активного элемента. Установите в значение false, чтобы показать его при запуске. Потребности разборные: правда. Примеры кода

Инициализируйте аккордеон с активной опцией .

$(".selector").accordion({ active: 2 }); 

Получить или установить активный вариант, после инициализации.

//getter 
var active = $(".selector").accordion("option", "active"); 
//setter 
$(".selector").accordion("option", "active", 2); 
+0

Если я установил это прямо перед моей перезагрузкой, он по-прежнему перезагружается при открытии первой панели. – RememberME

+0

hmm. можете ли вы опубликовать код? – orolo

+0

Я добавил '$ (" # acc "). Accordion (" option "," active ", 3);' перед 'window.location.reload();' – RememberME

0

О представлении формы отправки скрытого параметра, идентифицирующей открытой панели. Вы получаете этот параметр и используя его назначаете специальный идентификатор соответствующей панели во время вывода HTML-кода. Затем начните аккордеон в js-script:

$('#accordion').accordion({ 
    ... 
    ,active: '#panel_selected' 
    ... 
}); 
$('#panel_selected').get(0).scrollIntoView(false); // scroll until panel is visible 

Вот и все!

Смежные вопросы