2014-12-11 2 views
0

$("div").load(url) 이벤트를 사용하여 페이지에 부분 뷰를로드하고 있습니다. 따라서 Page가 더 빨리 렌더링됩니다. 그러나 이것으로 콘텐츠가로드되기 전에도 $(document).ready이 해고 당합니다. $(window).load도 시도했지만 내용로드 이전에도 해고되었습니다.jQuery 이벤트는 데이터가 페이지에로드 될 때까지 대기합니다.

데이터를로드 한 다음 자바 스크립트 함수 만 실행할 때까지 기다릴 수있는 방법을 제안 해주십시오.

+0

무엇이 문제인가? '$ (document) .ready' *는'load()'를 호출하기 전에 * 실행합니다. 그렇지 않으면 업데이트 한'div' 요소에 접근 할 수 없습니다. –

+0

내 문제는 전체 페이지 데이터가로드 된 후에 메서드를 실행해야한다는 것입니다. 자식 JS의 document.ready에 몇 가지 컨트롤이 숨겨져 있습니다. 데이터가로드되기 전에 document.ready가 실행되기 때문에 DOM에서 해당 컨트롤을 찾을 수 없습니다. 해결책을 제안하십시오. 마지막으로 서비스에서 얻은 데이터를 기반으로 몇 가지 컨트롤을 숨기려고합니다. – Sriks

+0

위임 된 이벤트를 사용해야하는 것 같습니다. –

답변

1

$ ("div"). load (url)을 사용하는 경우 URL 콘텐츠를 비동기 적으로로드하고 있습니다. 즉, document.load가 처음 초기화 된 다음 load (url)에 비동기 호출이 수행됨을 의미합니다.

// this line keeps all your function in one global name space and you can extend it multiple times in same document or js files 
var myapp = myapp||{}; 
$(function(){ 
    // Here you are extending your myapp object with custom init function 
    myapp.init = function(){ 
     //your init code here 
    } 

    //your ajax content load here 
    $('div').load(url,function(){ 
     //Here you call it 
     myapp.init(); 
    }) 
}) 

P.S. 예를 다시 부하 방법의 성공 호출에 화재 (myinit()를 말할 수)을 기능에 모든 초기화 자바 스크립트를 넣어 당신은 언제나 jQuery exec 블록 어디에서나 myapp.init()를 사용하여 콘솔에서 커스텀 메소드를 테스트 할 수있다.

+0

좋은 생각이지만, 내로드 방법은 루프에 있고 부모 JS에서 자식 JS 파일에있는 "myapp"변수에 액세스 할 수 없습니다. – Sriks

+0

그런 다음 jquery.js 바로 다음에 myapp를 정의한 다음 코드가옵니다. –

+0

굉장 .. 정말 고마워. 그것은 Bhavesh 근무 : – Sriks

관련 문제