2017-03-28 1 views
0

응용 프로그램에서 부트 스탭 모달 팝업을 사용하고 있습니다. 여기에 내가 겪고있는 문제가 있으며 해결 방법을 찾지 못했습니다.콘텐츠로드를 기다리지 않고 바로 부울 모달 표시

jQuery("#show-invoice").click(function(){ 
     jQuery('#invoice-details').modal('show'); 

     ...a call to an api to retrieve invoice details... 
     ...it takes about 2-3 seconds to retrieve... 
}); 

내가 크롬에서 # 쇼 - 송장 링크를 클릭하면 문제는, API 호출에 대한 모달 대기 완료 :

의 내가 다음과 같습니다 클릭 이벤트 리스너 있다고 가정 해 봅시다 모달 윈도우가 표시되기 전에 2-3 초 지연을 생성합니다. Firefox에서는 모달 윈도우가 즉시 표시되므로 jQuery ('# invoice-details'). modal ('show');은 다른 무엇보다 먼저 실행됩니다.

제 질문은, 심지어 짝수 번 발생하고 아무 것도 기다리지 않고 모달 창 쇼를 표시하려면 어떻게해야합니까? jQuery ('# invoice-details'). 모달 ('show'); 모든 브라우저에서? 당신이 당신이 할 수있는 비동기 아약스 호출 후 모달 즉시

jQuery('#invoice-details').modal('show'); 

을 표시 할 수 있습니다

+0

이상적으로는 이상적으로 표시해야합니다. API 호출이 완료 될 때까지 기다릴만한 이유를 찾지 못했습니다. 무슨 일이 일어나고 있는지 확인하기 위해 전체 코드를 붙여주세요. –

답변

0

. 데이터가로드되는 동안 모달에 송장 정보 대신로드 아이콘을 표시해야합니다. 데이터가로드되면 아이콘을 새로운로드 된 데이터로 바꿀 수 있습니다. 이와 같은 것 :

jQuery.ajax({ 
    url: 'invoice_details_url', 
    type: 'get', 
    success: function (invoice_details_data) { 
     jQuery('#invoice-details .invoice-details-container'). 
       empty().append(invoice_details_data); 
    }, 
    async:true, 
}); 
+0

답장을 보내 주셔서 감사합니다. 확실히 비동기 호출을 수정하는 방법을 알고 있습니다. 필자의 주저는 내 코드가 FF로 잘 작동하므로 크롬에서 작동하도록 일부 모호한 매개 변수가 누락 된 것처럼 보인다. 솔루션을 찾을 수 없다면, 비동기 호출을 사용하는 함수를 확실히 다시 코딩 할 것입니다. – codemonkey