2015-01-29 1 views
1

저는 JS에 상당히 익숙하며 페이지의 구성 요소가로드되는 순서를 이해한다고 생각하지만이 퍼즐이 나에게 있습니다.Foundation Accordion이 HTML로 선언되지 않은 경우로드되지 않습니다.

저는 Foundation 5와 협력 중이며 아코디언 구성 요소를 사용하고 있습니다. 내 js 스크립트에서 나는 데이터를로드 한 다음 mainContainer div의 내부 html이되는 아코디언에 넣습니다. 난 내 HTML에서 <dl class="accordion" data-accordion > </dl>을 삭제하면

<link rel="stylesheet" href="css/foundation.complete.css"> 
<link rel="stylesheet" href="css/normalize.css"> 
<link rel="stylesheet" type="text/css" href="css/myCss.css" /> 
<script src="js/vendor/modernizr.js"></script> 
<script src="js/app.js"></script> 
<script src="js/vendor/jquery.js"></script> 

<body onload="iniciarPg()"> 

<div id="principal" class="mainContainer"> 

     <dl class="accordion" data-accordion > </dl> 

</div> 

function iniciarPg() 
{ 
$(document).foundation({ 
     accordion: { toggleable: true } 
         }); 
    loadData(); 
} 
</script> 
<!--SCRIPTS  --> 
<script src="js/classie.js"></script> 
<script src="js/foundation.min.js"/> 
<script src="js/foundation/foundation.accordion.js"/> 

</body> 

내가 이해할 수없는 부분이 있다는 mainContainer의 모든 내부 HTML이 교체됩니다되지만, JS로드 페이지가 더 표시에게 accordeon하지 않습니다 다음 경우 제대로 클릭하면 확장되지 않습니다.

+1

콘솔 오류를 확인 했습니까? jQuery를로드하기 전에 app.js를로드하는 것이 궁금합니다. – Vijay

+0

예, 콘솔에 오류가 없으므로 나를 더 우둔하게 만듭니다. 그냥 app.js 전에 Jquery를로드했는지 확인하는 것과 같은 결과를 얻었습니다. 어떤 경우라도 body가로드되기 전에 함수가 호출되지 않으면 app.js에 영향을주지 않아야합니다. 맞습니까? – NicolasZ

답변

0

나중에 ajax를 통해 데이터가 제공되므로 reflow 기초 플러그인이 필요합니다.

function iniciarPg() 
{ 
$(document).foundation({ 
     accordion: { toggleable: true } 
         }); 
    loadData(); 
    //make sure the ajax has been finished and the HTML is properly set, otherwise move following line to you ajax success handler end. 
    $(document).foundation('reflow'); 

} 
</script> 
+0

주문을 변경했지만 여전히로드되지 않습니다. /. 어쨌든 함수는 몸체가로드 될 때까지 호출되지 않아야합니다 (onload = "iniciarPg()"). 그러면 순서가 달라지지 않습니다. – NicolasZ

+0

혼란 스럽습니다. 코드가 정리되지 않은 것처럼 보입니다. 나는 네 몸이'iniciarPg' 메서드 바로 위에 있다고 생각했다. jsfiddle를 만들 수 있습니까? – Vijay

+0

필자는 Intel XDK에서 하이브리드 응용 프로그램을 개발하고 있습니다. 그래서 나는 Fiddle을 만들지 않았습니다. 내 실수 라구. 전 몸 꼬리표를 써야 했어. 그 Body Comment는 HTML 자체의 주석이 아닙니다. 그걸 편집하겠습니다. – NicolasZ

관련 문제