2010-04-06 5 views
1

Я хотел бы отключить аккордоновую анимацию во время загрузки страницы, а затем снова включить ее после загрузки страницы.Отключить JQuery UI Аккордеонная анимация только во время загрузки страницы

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

Как достичь этого эффекта?

ответ

3

Чтобы ответить на мой собственный вопрос. Работало.

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

После этого настройте анимированную настройку на слайд, и все будет идти оттуда.

$(function(){ 
     /* Create the accordion object first */ 
     $("#accordion").accordion({ animated: false, header: "h3", autoHeight: false, clearstyle: true, collapsible: true }) 

     /* get the section to load. This is set by the previous form submission and saved to a session variable. */ 
     var id = <?php echo $sectionId; ?>; 

     /* activate on sectionId=0 causes it to close (which is by design) this gets around it */ 
     if (id != 0) { 
     $("#accordion").accordion("activate", id); 
     } 

     $("#accordion").accordion("option", {animated: "slide" }); 

    }); 
0

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

В JS при загрузке страницы сделать

var = false; //false = no open tabs 
$(".selector").accordion({ ..., active: var }); 

В представлении сделать PHP, предполагая, что вы используете его, сделайте следующее:

$my_tab_number = n; 
var = <php echo $my_tab_number; ?>; 

Итак, когда страница получает перезагружается будет открыт в нужную вкладку.

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