> 웹 프론트엔드 > JS 튜토리얼 > 서로 다른 jquery 버전이 충돌하는 경우 수행할 작업

서로 다른 jquery 버전이 충돌하는 경우 수행할 작업

coldplay.xixi
풀어 주다: 2020-11-30 15:17:00
원래의
1913명이 탐색했습니다.

다른 jquery 버전 간의 충돌 해결 방법: 먼저 [1.4.2]의 소스 코드 끝에 관련 코드를 추가한 다음 [1.4.2]의 프레임워크를 기반으로 하는 모든 플러그인의 헤드에 관련 코드를 추가합니다. ; 그리고 마지막으로 [jQuery1.4.2] 기반의 선택 기능을 사용하려면 [$j4(element)]를 사용하세요.

서로 다른 jquery 버전이 충돌하는 경우 수행할 작업

이 튜토리얼의 운영 환경: windows7 시스템, jQuery1.3.2&&jQuery1.4.2 버전 이 방법은 모든 브랜드의 컴퓨터에 적합합니다.

다른 jquery 버전 간의 충돌에 대한 솔루션:

사례: jQuery 1.3.2와 1.4.2 간의 충돌을 해결합니다.

1단계: 1.4.2 소스 코드 끝에 문장 추가:

var $j4 = jQuery.noConflict(true);
로그인 후 복사

대부분의 기사에서 언급한 것처럼 사용될 때 소스 코드에 추가하는 대신 여기에 추가하는 이유는 다음과 같습니다. 1.4.2 기반의 플러그인을 많이 추가해야 하기 때문에 여기에 추가하면 너무 많은 플러그인에 이 코드를 추가하여 발생하는 중복을 피할 수 있습니다. 이 문장은 1.4.2에서 jQuery와 $의 모든 참조 권한을 포기합니다. 즉, 1.4.2 기반 플러그인은 더 이상 jQuery와 $를 사용할 수 없습니다. 동시에 $j4에 새로운 네임스페이스를 부여합니다. 이는 window의 속성입니다. 1.4.2의 소스코드를 보면 실제로 다음 두 문장을 실행하는 것을 확인할 수 있습니다.

window.$=_$;
window.jQuery=_jQuery;
로그인 후 복사

원리는 window.$=_temp$와 동일합니다(네임스페이스 반환). 이지만 이름이 다릅니다. window.$=_temp$(返还命名空间)只是命名不同而已。

第二步:在基于1.4.2的框架的所有插件的头部加上以下代码:

var _temp$ = window.$,_tempjQuery = window.jQuery;
로그인 후 복사

将jQuery1.3.2的$和jQuery放到临时的变量空间上:

window.$ = $j4;
로그인 후 복사

这句和下面的那句都是为了给中间的代码能够正确使用jQuery和$用的。后面的$j4是赋予他们正确的引用。

window.jQuery = $j4;
로그인 후 복사

之所以要先放临时变量存储,有三点必须这样做的理由:

①.我们不希望改动大量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。而在头部尾部加改动代码,中间的原始代码不动也是不错的一种方式。

②.因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码又用了他们来做引用,因为插件不可能预知冲突,即使有冲突他人开发的插件也一定要用$或者jQuery引用,除非它不是jQuery下的插件。

③.为了防止插件里面直接用window.$window.jQuery进行引用从而导致引用到1.3.2的jQuery和$,虽然这种情况比较少,但是以防万一。

中间的原始代码不动,尾部加以下代码:

window.$ = _temp$;//将$的引用权限返还给jQuery1.3.
window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.
로그인 후 복사

第三步:以后要用基于jQuery1.4.2的选取函数就只能用$j4(element)了。

总结:到目前为止可行方案:jQuery1.4.2完全放弃$和jQuery的控制权限。1.3.2放弃$的控制权限但不放弃jQuery的权限,其实jQuery也可放弃,只不过要给个别名$j3。prototype最好放在jQuery1.3.2后面,它获得$的控制权限。只是以后要用jQuery1.4.2就必须用$j4来引用了。但这样即使有再多的jQuery框架版本冲突问题,也全部解决掉了。假如来了个1.2的jQuery怎么办,参照(2)的执行步骤,只不过第一步改为:

var $j2 = jQuery.noConflict(true);
로그인 후 복사

第三步用$j2(element)

2단계: 1.4.2 프레임워크를 기반으로 하는 모든 플러그인의 헤드에 다음 코드를 추가합니다.

rrreee

jQuery1.3.2의 $ 및 jQuery를 임시 변수 공간에 넣습니다. rrreee이 문장 그리고 다음 문장은 모두 jQuery와 $를 올바르게 사용하기 위한 중간 코드입니다. 다음 $j4는 올바른 참조를 제공합니다.

rrreee
임시 변수를 먼저 저장해야 하는 세 가지 이유가 있습니다: 🎜🎜①.jQuery 플러그인 소스 코드를 많이 변경하고 싶지 않습니다. 변경하더라도 변경하지 않는 것이 가장 좋습니다. 가능한 한 적게 변경해야합니다. 머리 부분과 꼬리 부분에 수정된 코드를 추가하고 중간 부분의 원본 코드는 그대로 두는 것도 좋은 방법입니다. 🎜🎜②.1.4.2에서는 jQuery와 $에 대한 제어를 포기했지만 기존 플러그인 코드에서는 이를 참조용으로 사용하기 때문에 플러그인은 충돌이 있어도 충돌을 예측할 수 없기 때문에 다른 사람이 개발한 플러그인입니다. jQuery 아래의 플러그인이 아닌 한 $ 또는 jQuery를 사용하여 인용해야 합니다. 🎜🎜3. 플러그인이 window.$window.jQuery를 직접 참조하는 것을 방지하기 위해 1.3.2 jQuery를 참조하게 됩니다. 그리고 $, 이 상황은 상대적으로 적지만 만일의 경우에 대비해. 🎜🎜중간 원본 코드는 그대로 유지되며, 마지막에 다음 코드가 추가됩니다. 🎜rrreee🎜🎜3단계: 향후 jQuery1.4.2 기반 선택 기능을 사용하려면 $만 사용하면 됩니다. j4(요소). 🎜🎜🎜요약: 현재까지 실현 가능한 솔루션: jQuery1.4.2는 $ 및 jQuery의 제어 권한을 완전히 포기합니다. 1.3.2 $의 제어 권한은 포기하지만 jQuery의 권한은 포기하지 않습니다. 실제로 jQuery도 포기할 수 있지만 별칭 $j3을 주어야 합니다. $의 제어 권한을 얻는 jQuery1.3.2 뒤에 프로토타입을 배치하는 것이 가장 좋습니다. 단지 앞으로 jQuery1.4.2를 사용하려면 $j4를 사용하여 참조해야 한다는 것입니다. 하지만 이렇게 하면 jQuery 프레임워크 버전 충돌이 아무리 많아도 모두 해결됩니다. jQuery 1.2가 나오면 (2)의 실행 단계를 참조했는데 첫 번째 단계는 다음과 같이 변경됩니다. 🎜rrreee🎜세 번째 단계에서는 $j2(element)를 사용합니다. 원칙은 동일합니다. 🎜🎜저는 이 글에서 설명하는 내용이 모든 사람의 jQuery 프로그래밍에 대한 특정 참조 가치를 갖고 있다고 믿습니다. 🎜🎜🎜관련 무료 학습 권장 사항: 🎜JavaScript🎜(동영상) 🎜🎜

위 내용은 서로 다른 jquery 버전이 충돌하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿