2010-02-07 12 views
1

나는이 jQuery를 스크립트가 있습니다자바 스크립트 콜백 함수

$(content).find('data').each(function(){ 

    // parsing some data 

    $(this).find('something').each(function(){ 

    $(this).find('something new').each(function(){ 

     // etc. 

    }}; 

    }); 

}); 

을 ... 그리고이 스크립트가 완료되면() 함수 XYZ를 호출합니다.

(이것은 너무 일찍) 함수 XYZ를 (호출) 작동하지 않습니다 :
$(content).find('data').each(function(){ 

    // parsing some data 



}, XYZ()); 

어떤 솔루션이 있습니까? 고맙습니다.

답변

7

$. 모두가 비동기 적이 지 않으므로 콜백 그 자체는 필요하지 않습니다. 이렇게하면 작동합니다 :

0

비동기 프로세스가있는 경우 "/// 등"에서 "XYZ()"를 호출해야합니다.

var xData $(content).find('data'), 
    lenData = $(xData).length; 

if (lenData==0){ 
    XYZ(); 
} 
else{ 
    $.each(xdata, function(index, value){ 
    // parsing some data 

    var xsomething = $(this).find('something') 
     lenxsomething = $(xsomething).length; 

    if ((lenxsomething==0) && (lenData==(index+1))){ 
     XYZ(); 
    } 
    else{ 
     $.each(xsometing, function(index2, value2){ 

     var xsomethingNew $(this).find('something new') 
      lenxsomethingNew = $(xsomething).length; 

     if ((lenxsomethingNew==0) && (lenxsomething==(index2+1))){ 
      XYZ(); 
     } 
     else{ 
     $.each(xsomethingNew, function(index3, value3){ 
       //etc .. 
       //then asynchronous process 
       if (lenxsomethingNew==(index3+1)){ 
       XYZ(); 
       } 
      }); 
     } 

     }); 
    } 
    }); 
}