2012-03-16 2 views
0

페이지로드가 완료 될 때까지 CSS로 jQuery UI 아코디언을 강제 종료하는 방법이 있습니까? 우리는 콘텐츠 관리 시스템에서이를 사용하고 있으며 각 페이지를로드하는 데는 상당한 시간이 걸립니다. 페이지가로드 될 때까지 jQuery가 트리거되지 않지만 모든 아코디언이 이미 펼쳐진 지점이로드됩니다. 일단 페이지가로드되면 닫히지 만 거대한 목록이 올라와 사라지는 것을 사용자가 혼란스럽게 느끼는 것처럼 느껴집니다.CSS로 jQuery UI Accordions 닫기

+1

http://stackoverflow.com/questions/7947789/jquery-ui-accordion-start-collapsed 그것에 나를 이길 – ahillman3

답변

2

.accordion({ ... }) 전화 자체에 대한 옵션이있다 :

.accordion({ active: false, collapsible: true }); 

active: false 옵션은 창조에 폐쇄하게하고 다시 닫을 수 있도록 당신이 그것을 열 일단 collapsible: true 옵션을합니다.

+0

... :-) –

+0

나는 다른 질문에 대한 언급과 함께 그를 때려 눕혔지만 사소한 의견으로 바뀌었다. – ahillman3

+0

아직 페이지가 로딩되기 전까지는 여전히'$ (document) .ready()'에 있기 때문에 여전히 실행되지 않을 것입니다. – JacobTheDev

0

옵션은 모든 탭이 닫힌 상태에서 아코디언을 초기화하는 방법을 보여줍니다. 참조 : http://jqueryui.com/demos/accordion/#option-active이 초기화 코드는 것을 의미합니다

$(".selector").accordion({ active: false, collapsible: true }); 
0

JQuery와 아코디언 documentation의 설정에 따라, 당신은 단순히 H3 헤더 아래의 내용 DIV<div style="display: none">를 넣을 수 있습니다. 그러면 페이지가로드되는 동안 아코디언의 모든 콘텐츠가 숨겨집니다.

0

당신은 그것을 좋아 설정할 수 있습니다

.accordion-body{ 
    display: none; 
} 

난 당신이 다시 표시 걱정할 필요가 없습니다 그래서 당신이 아코디언, 어딘가 $ .show (또는 유사)를 호출합니다 같아요. 당신이 DOM로드에 .accordion()를 호출하는 경우 내가 틀렸다 경우에, 당신은 그것을 볼 수 있도록 다시

$('.accordion-body').css('display', 'block'); 
$('#accordion').accordion(); 

를 사용하지만, 그래서 다시, 이것은 추측이다, 당신은 또한, 이전을 발사하여 시도 할 수 있습니다. 부하 :

당신의 CSS에서 당신이 아코디언 호출하는 데 사용하는 셀렉터에 스타일을 적용 :

$('#accordion').load(function(){ 
    $(this).accordion(); 
}); 
0

당신이 뭔가를 시도 할 수

.accordionSelector > div { display:none; } 
를 jQuery를로드 한 후 515,

그런 다음 block로 다시 display 변경 :

$(".accordionSelector").accordion({...}).children("div").css("display","block");