동일한 페이지에서 다른 버전의 jQuery를 실행하려면 어떻게 해야 합니까?
우리 회사는 페이지에 ASP.NET 컨트롤을 렌더링하는 제품을 구매했습니다.이 컨트롤은 jQuery 1.2.3을 사용하고 페이지에 스크립트 태그를 추가하여 참조합니다.컨트롤 개발자는 컨트롤이 다른 버전의 jQuery를 참조하기 위한 수정 사항을 포함하여 어떠한 방식으로든 수정된 경우 컨트롤 사용을 지원하지 않습니다.
나는 곧 나만의 컨트롤 개발을 시작할 것이며 jQuery 1.3의 기능과 속도 향상을 사용하고 싶습니다.이 두 컨트롤은 모두 동일한 페이지에 있어야 합니다.
구매한 컨트롤이 jQuery 1.2.3을 사용하고 새로운 사용자 정의 개발이 jQuery 1.3을 사용하도록 허용하려면 어떻게 해야 합니까?또한 호기심으로, 만약 우리가 jQuery의 다른 버전을 참조해야 하는 추가 컨트롤을 사용한다면 어떨까요?
충돌 없는 모드에서 jQuery 버전을 실행하면 이를 달성할 수 있습니다.충돌 없음 모드는 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
다소 불필요합니다!
콘로이P가 말했듯이 당신은 이것을 할 수 있습니다.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");
});
}
언급URL : https://stackoverflow.com/questions/528241/how-do-i-run-different-versions-of-jquery-on-the-same-page
'programing' 카테고리의 다른 글
Best way to get application folder path (0) | 2023.06.14 |
---|---|
R 패키지를 언로드할 때 동적 라이브러리를 언로드해야 합니까? (0) | 2023.06.14 |
MariaDB 쿼리가 너무 느립니다. (0) | 2023.06.14 |
웹 팜 사이트의 web.config에 machineKey 추가 (0) | 2023.06.14 |
MariaDB는 함수 인덱스(함수 기반 인덱스)를 만들 수 있습니까? (0) | 2023.06.09 |