2014-04-11 4 views
0

CSV 파일의 정보를 구문 분석하고 목록 양식으로 표시하여 페이지를 채 웁니다. 목록이 채워지면 jQuery UI 아코디언을 사용하여 아코디언 메뉴로 만듭니다. 내 코드는 다음과 같습니다 : 아약스가 완료되거나 다른 아코디언 메뉴로 만들 수있는 데이터가되지 않습니다 때까지 기다릴 필요가ajaxComplete 함수 내에서 AJAX 함수 사용

$(document).ajaxComplete(function(){ 
     $('div#accordion > ul').accordion({collapsible: true, active:false}); 
    }); 

. 그런 다음이 목록 항목에 클릭 동작을 적용해야합니다. 목록 항목을 클릭하면 AJAX 호출이 실행되고 해당 CSV에서 더 많은 데이터를 가져옵니다. 그래서 본질적으로 ajaxComplete 함수 내에서 AJAX 요청이라고합니다.을 사용할 수 없습니다. 초기 AJAX 함수가 비동기 적으로 호출되어 작동하지 않기 때문입니다.

문제점은 클릭 기능을 사용하면 작동하고 두 번째는 두 번 사용하고 세 번 실행하면 4 번 등입니다. 아약스 기능이 실행 중이기 때문에 클릭하는 것으로 가정합니다. 그리고 ajax 함수를 포함하는 ajaxcomplete 함수를 실행하면 곱셈이 계속됩니다.

'hasRun'변수를 true 및 false로 설정하려고 생각했지만 루프를 두 번 이상 실행하지 못하도록 루프에 통합하는 방법을 알 수 없습니다.

아이디어가 있으십니까? 당신의 도움을 주셔서 감사합니다!

+3

'ajaxComplete'은 전역입니다. 특히 하나의 아약스 호출 후에 만 ​​실행해야한다면, 그 아약스 호출의 완료 콜백에 넣지 않으시겠습니까? –

+0

아, 좋은 생각, 저를 들여다 보겠습니다. 왜 내가 그렇게하고 있는지 모르겠다. – MillerMedia

+0

안녕하세요 @ JasonP, 완벽합니다. 고맙습니다! 원한다면 답으로 쓸 수 있고 받아 들일 수 있습니다. – MillerMedia

답변

1

ajaxComplete 글로벌입니다. 해당 코드는 특히 하나의 아약스 호출 후에 만 ​​실행해야하는 경우 해당 아약스 호출의 완료 콜백에 넣을 수 있습니다.