이 글은 주로 jQuery에서 noContribute()의 사용법을 소개합니다. noContribute()의 기능, 정의 및 관련 사용법을 예제와 함께 분석합니다. 도움이 필요한 친구들이 참고할 수 있습니다. ) jQuery에서 예제가 포함되어 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
jQuery는 기본적으로 "$"
연산자를 사용합니다. $ 기호는 단지 window.jQuery 객체인 jQuery.noConflect()에 대한 참조일 뿐입니다. 그것을 구현한 첫 번째 라이브러리입니다. 이는 jQuery가 다른 라이브러리의 $object와 충돌하지 않도록 하는 데 도움이 됩니다. 이 함수를 실행한 후에는 jQuery 변수를 사용하여 jQuery 개체에만 액세스할 수 있습니다. 예를 들어 $("p p")를 사용하는 경우에는 jQuery("p p")로 바꿔야 합니다.
1. "$" 연산자1. jQuery는 기본적으로 "$" 연산자를 사용하며 프로토타입과 같은 다른 프레임워크도 "$"를 사용합니다. " $"사용권한입니다. 이 상황은 이해하기 쉽습니다. 결국 JS는 위에서 아래로 실행됩니다.
2. "$"를 사용하는 다른 라이브러리보다 먼저 jQuery가 도입되면 jQuery는 "$"를 차지하지 않습니다.
팁: 이 방법은 다른
JavaScript라이브러리가 해당 기능에 $를 사용할 때 유용합니다. 우리 모두는 jquery에서 변수를 가져올 때 $를 사용하지만, $ 기호를 동시에 참조하려는 경우 이를 방지하기 위해 문제가 발생합니다. jquery는 nocon conflict를 도입했습니다. ()
2. jQuery.noConfluence의 정의
jQuery.noConstrict 메소드에는 $ 참조를 넘겨줄지 여부와 jQuery 객체 자체를 넘겨줄지 여부를 결정하는 선택적 부울 매개변수가 포함되어 있습니다.
jQuery.noConflict([removeAll])
함수 참고:
3. jQuery.noCon conflict 소스 코드 분석
jQuery 소스 코드 시작 부분에서 가장 먼저 해야 할 일은 다음과 같습니다.
// Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$,
jQuery가 윈도우 환경을 매핑하는 것은 이해하기 쉽습니다. 두 개의 개인 변수 jQuery 및 $ 객체를 사용하여 변수를 강제로 덮어쓰는 것을 방지합니다. noContribute 메소드가 호출되면 _jQuery, _$, jQuery, $의 차이를 이용하여 제어 전달 방식을 결정합니다. 구체적인 코드는 다음과 같습니다.
noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }
위에서 언급한 매개변수를 다시 살펴보겠습니다. 문제는 deep이 설정되지 않으면 _$가 window.$를 덮어쓰게 된다는 점입니다. 이때 jQuery 별칭 $는 유효하지 않게 되지만 jQuery 자체는 그대로 유지됩니다. 다른 라이브러리나 코드가 $ 변수를 재정의하는 경우 해당 변수에 대한 제어가 완전히 이전됩니다. 반면 deep을 true로 설정하면 _jQuery가 window.jQuery를 덮어쓰게 되며 $와 jQuery가 모두 유효하지 않게 됩니다.
이 작업의 장점은 혼합 프레임워크나 여러 버전의 jQuery가 공존하는 등 충돌이 심한 실행 환경에 관계없이 noConfluence 메서드에서 제공하는 핸드오버 메커니즘과 발견되지 않은 jQuery 개체를 반환한다는 사실로 인해 변수 매핑을 통해 완전히 해결할 수 있습니다.
4. jQuery.noConstrict 인스턴스
1. $가 참조하는 객체를 원래 객체에 다시 매핑합니다.
jQuery.noConflict(); jQuery("p p").hide(); // 使用 jQuery $("content").style.display = "none"; // 使用其他库的 $()
2. 별칭 $의 사용을 복원한 다음 함수를 생성하고 실행합니다. $ 함수의 역할은 여전히 도메인에서 jQuery의 별칭으로 사용됩니다. 이 함수에서는 원래 $ 객체가 유효하지 않습니다. 이 기능은 다른 라이브러리에 의존하지 않는 대부분의 플러그인에 매우 효과적입니다:
jQuery.noConflict(); (function($) { $(function() { // 使用 $ 作为 jQuery 别名的代码 }); })(jQuery); ... // 其他用 $ 作为别名的库的代码
3. jQuery.noConstrict()를 축약된 Ready와 결합하여 코드를 더 간결하게 만들 수 있습니다:
jQuery.noConflict()(function(){ // 使用 jQuery 的代码 }); ... // 其他库使用 $ 做别名的代码
4. 다음 라이브러리에서 jQuery 개체를 사용하려면 새 별칭을 만듭니다.
var j = jQuery.noConflict(); j("p p").hide(); // 基于 jQuery 的代码 $("content").style.display = "none";// 基于其他库的 $() 代码
5 jQuery를 새
네임스페이스
var dom = {}; dom.query = jQuery.noConflict(true); //结果: dom.query("p p").hide(); // 新 jQuery 的代码 $("content").style.display = "none"; // 另一个库 $() 的代码 jQuery("p > p").hide(); // 另一个版本 jQuery 的代码
위 내용은 jQuery에서 noContribute() 사용법 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!