2012-04-30 4 views
-3

Jquery를로드하고 jquery를 성공적으로로드 한 후 콜백을 만들 때까지 기다릴 수있는 자바 스크립트 코드 랩이 있습니까? 나는이 같은 코드 랩 무언가를 원하는이Jquery 준비 래퍼

JqueryWait(function(){ 
    //my magnificent jquery codes ^^ 
}); 

같은

뭔가 ...

설명 : 나는 headjs를 사용하고 그리고 난 headjs 별도의 코드에서 jQuery를로드. 이제 내 다른 스크립트는 jquery에 의존하기 때문에 jquery가 이미로드되었는지 다른 스크립트에서 알아야합니다. 나는 headjs의 콜백 함수에 대해 알고 있지만 내 다른 스크립트는 추가 정보를 콜백 함수

답변

1

가이 시도 :

function JqueryWait(fn) { 
    if (jQuery) fn(); 
    else setTimeout(function() { JqueryWait(fn); }, 100); 
} 

JqueryWait(function(){ 
    //my magnificent jquery codes ^^ 
}); 
+0

이것은 메모리를 망친 것입니다. – Starx

+1

@Starx : 폴링이 유일한 방법 인 것처럼 보입니다. 페이지가로드 된 후 OP가 jQuery를로드하고 있다고 생각합니다. 그것 또는 GM 스크립트를위한 것입니다. – qwertymk

0
$(function() { 
// code jere... jquery is loaded 
}); 

에 넣을 수 없습니다 http://api.jquery.com/ready/

+0

왜 투표가 중단 되었습니까? – Pointy

+0

좋은 이유가 아닌 것 같습니다. 아마도 더 많은 사람들이 .ready()를 사용하여 그것을 알고있을 것입니다. – joshp

+0

또 다른 요점은 호출하기 전에 jquery, 즉 스크립트로드 및 평가의 기본 규칙을로드하는지 확인하는 것입니다. – joshp

-1

당신은이 작업을 수행 할 추가 기능을 필요 없어요. jQuery의 $(document).ready(function() { });이면 충분합니다.

$(function() { 
    //ever code written inside here is run, after the jQuery & DOM is ready 
}); 

Anways, 다른 jQuery를로드되었는지 확인 할 수있는 방법 여부

if (typeof jQuery == 'undefined') { 
    //... jquery not loaded 
} 
+0

의견을 남겨주세요, 당신 downvoting 있습니다. 감사합니다. – Starx

+1

질문의 요점을 놓쳤습니다. jQuery가로드되기 전에 (즉'$'앞에 값이 지정되기 전에)'$() '를 호출하면 사용자에게 오류가 발생합니다. – RobG

+0

$가 jquery이고 jquery가로드되었는지 여부를 알고 싶습니다. –

0

을만큼 당신이 전에 jQuery를 파일을 넣어로 두 개의 파일을 하나의 .js 파일에 넣으면 문제가되지 않습니다. 코드를 시작하기 전에 jQuery를로드해야합니다. 그렇지 않으면 jQuery가 올바르게로드되지 않았습니다. 당신은 당신의 스크립트에서 jQuery를 확인하기 위해이 대체 방법을 사용할 수 있습니다 :

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
<script type="text/javascript"> 
if (typeof jQuery == 'undefined') { 
    document.write(unescape("%3Cscript src='/js/jquery-1.7.2.min.js' type='text/javascript'%3E%3C/script%3E")); 
} 
</script> 

CSS-Tricks을 통해 페이지가로드 후 jQuery를 을로드 찾고 있다면, 당신은 두 가지 옵션이 있습니다. DOM에 jQuery를 소싱하고 위의 예제처럼 문서로드를 기다리는 스크립트 태그를 삽입하거나 RequireJS과 같은 비동기 로더를 사용한다. (정직하게는 똑같은 일을하지만 의존성 관리와 같은 다른 많은 용도로 사용하는 것이 더 좋다) .

참고 : $(function(){})를 사용하여 다른 답변 :

방법은로드 DOM을 기다리는

,이 코드를 실행하기 전에 jQuery를의 존재 여부를 확인하지 않습니다.

+0

'$ (...)'은 아무 것도 기다리지 않고 바로 호출됩니다. jQuery가 DOM이로드되었다고 생각할 때 전달 된 함수가 호출됩니다. – RobG

+0

여전히 DOM이 해당 함수를 실행하기를 기다리는 동안 jQuery를 기다리는 것과 비교하면 의미가 있습니다. –