2011-11-18 1 views
0

Jquery와 Prototype이로드 된 페이지가 있습니다.Javascript : JS 라이브러리의로드 순서를 감지합니다.

<script type="text/javascript" src="jquery-1.4.4.min.js"></script> 
<script type="text/javascript" src="prototype.js"></script> 

또는

<script type="text/javascript" src="prototype.js"></script> 
<script type="text/javascript" src="jquery-1.4.4.min.js"></script> 

나중에 같은 페이지에서

가, 나는 내 자신의 코드를 삽입 할 수 있어요 (I 순서를 알고이 페이지를 제어 할 수 없습니다하지 않습니다). 이 두 라이브러리를로드하는 순서를 알아야합니다. 예를 들어 프로토 타입 lib가 먼저로드 된 경우이를 수행하고 그렇지 않으면이를 수행하십시오.

어떻게 이것을 jQuery 또는 순수한 자바 스크립트로 할 수 있습니까?

+1

이유없이이를 수행 중 첫 번째 하나입니다

if (jQuery === $) { alert("jQuery later"); } else { alert("Prototype later"); } 
James

+1

아마도 주문이 중요한 이유를 설명 할 수 있다면 더 나은 대답을 얻을 수 있습니다. – Ibu

답변

3

도움이됩니다.

jQuery.noConflict(); //will return $ to what it had been before jQuery was added 
(function ($) { 
    //jQuery aliased to $ for use within anonymous closure 
}(jQuery)); 

jQuery(function ($) { 
    //jQuery aliased to $ for use within $(document).ready shortcut 
}); 
+0

이 방법이 효과적입니다. 감사!! :) – RoundOutTooSoon

1

당신이 jQuery를 간의 충돌을 방지하고 그들이에로드 된 어떤 순서로 문제 못해 프로토 타입을해야하는 경우

? 문서 준비가 완료 될 때까지 기다리거나 단순히 배열의 모든 스크립트 요소를 가져 와서 루프를 통해 어느 것이 먼저 자바 스크립트로 시작되는지 파악할 수 있습니다. 첫 번째로로드하는 것이 중요하면 jQuery를 사용하지 않고 순수한 자바 스크립트를 사용하고 싶습니다.
+1

당신의 경우는 어떨지 모르겠지만 프로토 타입 lib가로드 될 때 내 페이지의 프로토 타입 코드가 작동하지 않습니다. jquery lib 이후에 jQuery.noConflict()가 호출됩니다. 나는 이것으로 스스로 놀고 있었고로드 순서 문제에 대해 알았다. 자세한 내용은 http://docs.jquery.com/Using_jQuery_with_Other_Libraries에서 볼 수 있으며 "다른 라이브러리보다 먼저 포함" – RoundOutTooSoon