2010-04-06 3 views
1

페이지로드 중에 accordian 애니메이션을 해제 한 다음 페이지가로드 된 후 다시 켜기를 원합니다.Jquery UI Accordion 애니메이션을 페이지로드 중에 만 끕니다.

기본적으로 나는 아코디언 섹션 안에 여러 폼을 가지고 있으며, 제출되면 페이지가 다시로드되고 관련 섹션이 다시로드됩니다. 그러나 다시로드하는 동안 애니메이션이 약간 엉망으로 보이게됩니다. 그러나 페이지가로드되지 않을 때 나는 그것을 좋아합니다.

어떻게이 효과를 얻을 수 있습니까?

답변

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 스크립트도 다시로드되므로 모든 종류의 데이터를 포함하는 모든 변수가 기본값으로 재설정됩니다. 이 작업을 수행 할 수 있다고 생각할 수있는 유일한 방법은 제출을받은 후에 자바 스크립트에서 서버 측 언어로 변수를 설정하는 것입니다. 페이지가 다시로드됩니다

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

그래서 때 열립니다 : 페이지를로드 JS에서

는 수행 제출에

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

당신이 그것을 사용하고있는 가정, PHP를 어떻게해야합니까 당신이 원하는 탭에.

관련 문제