페이지로드가 완료 될 때까지 CSS로 jQuery UI 아코디언을 강제 종료하는 방법이 있습니까? 우리는 콘텐츠 관리 시스템에서이를 사용하고 있으며 각 페이지를로드하는 데는 상당한 시간이 걸립니다. 페이지가로드 될 때까지 jQuery가 트리거되지 않지만 모든 아코디언이 이미 펼쳐진 지점이로드됩니다. 일단 페이지가로드되면 닫히지 만 거대한 목록이 올라와 사라지는 것을 사용자가 혼란스럽게 느끼는 것처럼 느껴집니다.CSS로 jQuery UI Accordions 닫기
답변
가 .accordion({ ... })
전화 자체에 대한 옵션이있다 :
.accordion({ active: false, collapsible: true });
active: false
옵션은 창조에 폐쇄하게하고 다시 닫을 수 있도록 당신이 그것을 열 일단 collapsible: true
옵션을합니다.
... :-) –
나는 다른 질문에 대한 언급과 함께 그를 때려 눕혔지만 사소한 의견으로 바뀌었다. – ahillman3
아직 페이지가 로딩되기 전까지는 여전히'$ (document) .ready()'에 있기 때문에 여전히 실행되지 않을 것입니다. – JacobTheDev
옵션은 모든 탭이 닫힌 상태에서 아코디언을 초기화하는 방법을 보여줍니다. 참조 : http://jqueryui.com/demos/accordion/#option-active이 초기화 코드는 것을 의미합니다
$(".selector").accordion({ active: false, collapsible: true });
JQuery와 아코디언 documentation의 설정에 따라, 당신은 단순히 H3 헤더 아래의 내용 DIV에 <div style="display: none">
를 넣을 수 있습니다. 그러면 페이지가로드되는 동안 아코디언의 모든 콘텐츠가 숨겨집니다.
당신은 그것을 좋아 설정할 수 있습니다
.accordion-body{
display: none;
}
난 당신이 다시 표시 걱정할 필요가 없습니다 그래서 당신이 아코디언, 어딘가 $ .show (또는 유사)를 호출합니다 같아요. 당신이 DOM로드에 .accordion()
를 호출하는 경우 내가 틀렸다 경우에, 당신은 그것을 볼 수 있도록 다시
$('.accordion-body').css('display', 'block');
$('#accordion').accordion();
를 사용하지만, 그래서 다시, 이것은 추측이다, 당신은 또한, 이전을 발사하여 시도 할 수 있습니다. 부하 :
당신의 CSS에서 당신이 아코디언 호출하는 데 사용하는 셀렉터에 스타일을 적용 :
$('#accordion').load(function(){
$(this).accordion();
});
당신이 뭔가를 시도 할 수
.accordionSelector > div { display:none; }
를 jQuery를로드 한 후 515,
그런 다음 block
로 다시 display
변경 :
$(".accordionSelector").accordion({...}).children("div").css("display","block");
http://stackoverflow.com/questions/7947789/jquery-ui-accordion-start-collapsed 그것에 나를 이길 – ahillman3