같은 페이지에서 다른 버전의 jQuery를 어떻게 실행합니까?
우리 회사는 페이지에서 ASP.NET 컨트롤을 렌더링하는 제품을 구입했습니다. 이 컨트롤은 jQuery 1.2.3을 사용하고이를 참조하기 위해 페이지에 스크립트 태그를 추가합니다. 컨트롤 개발자는 컨트롤이 어떤 방식 으로든 수정 된 경우 (다른 버전의 jQuery를 참조하는 수정 포함) 컨트롤 사용을 지원하지 않습니다.
내 자신의 컨트롤 개발을 시작하려고하며 jQuery 1.3의 기능과 속도 향상을 사용하고 싶습니다. 이러한 컨트롤은 모두 동일한 페이지에 있어야합니다.
구입 한 컨트롤에서 jQuery 1.2.3을 사용하고 새로운 사용자 지정 개발에서 jQuery 1.3을 사용하도록 허용하려면 어떻게해야합니까? 또 다른 버전의 jQuery를 참조하는 데 필요한 추가 컨트롤을 사용하려면 궁금한 점이 있습니까?
충돌 방지 모드 에서 jQuery 버전을 실행하여이를 달성 할 수 있습니다 . "충돌 없음"모드는 prototype 과 같은 다른 프레임 워크가있는 페이지에서 jQuery가 작동하도록하는 일반적인 솔루션 이며,로드하는 jQuery의 각 버전을 본질적으로 네임 스페이스하므로 여기서도 사용할 수 있습니다.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
이러한 변화는 사용할 jQuery를 물건 중 하나를 사용하여 호출해야 함을 의미합니다 jq13
보다는 $
, 예를
jq13("#id").hide();
동일한 페이지에서 두 버전을 실행하는 것은 이상적인 상황은 아니지만 대안이없는 경우 위의 방법을 사용하면 한 번에 두 가지 버전을 사용할 수 있습니다.
또 다른 버전의 jQuery를 참조하는 데 필요한 추가 컨트롤을 사용하려면 궁금한 점이 있습니까?
다른 버전의 jQuery를 추가해야하는 경우 위를 확장 할 수 있습니다.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
jq131 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
변수 jq13
및 jq131
각각은 필요한 버전 별 기능에 사용됩니다.
원래 개발자가 사용한 jQuery가 마지막에로드되는 것이 중요합니다. 원래 개발자는$()
jQuery 버전을 사용 한다는 가정하에 코드를 작성했을 가능성이 높습니다 . 다른 버전을로드하면로드 $
한 마지막 버전에 의해 "잡기"됩니다. 이는 원래 개발자의 코드가 최신 라이브러리 버전에서 실행되고 있음을 의미하므로 noConflicts
다소 중복됩니다!
ConroyP이 말했듯이 이것을 할 수 jQuery.noConflict
있지만 var
변수를 선언 할 때 잊지 마십시오 . 이렇게.
<script src="jQuery1.3.js"></script>
<script>
var jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
함수 뒤에 (jq13)을 추가하여 모든 $를 jq13에 연결할 수 있습니다 })
. 이렇게
(function($) {
...
})(jq13);
순서가 중요하지 않은 것 같습니다 ... 예 : http://gist.github.com/136686 . 콘솔 출력이 맨 위에 있고 모든 버전이 올바른 위치에있는 것 같습니다.
일하는 것을 거짓으로 만들다
var jq16 = $.noConflict(false);
두 번째 버전에서는 변수를 $ .noConflict (true)로 선언합니다. 그리고 jquery 코드에서 사용 된 $ 대신 선언 된 변수를 사용하십시오. 아래 코드를 확인하세요.이 코드는 jquery의 두 번째 버전 선언 후에 사용됩니다.
<script type="text/javascript">
var jQuery_1_9_1 = $.noConflict(true); function pageLoad(sender, args) {
var $ddl = jQuery_1_9_1("select[name$=drpClassCode]");
var $ddl1 = jQuery_1_9_1("select[name$=drpSubContractors]");
$ddl.select2();
$ddl1.select2();
$ddl.bind("change keyup", function () {
$ddl.fadeIn("slow");
});
$ddl.bind("change keyup", function () {
$ddl1.fadeIn("slow");
});
}
'Programing' 카테고리의 다른 글
jQuery에서 브라우저 스크롤 위치를 어떻게 얻습니까? (0) | 2020.11.08 |
---|---|
UTF8에서 STL 로의 와이드 문자 변환 (0) | 2020.11.08 |
Clojure의 Let 대 바인딩 (0) | 2020.11.08 |
인터프리터 / 컴파일러는 어떻게 작동합니까? (0) | 2020.11.08 |
언제 stdClass를 사용해야하고 언제 PHP oo 코드에서 배열을 사용해야합니까? (0) | 2020.11.08 |