> 웹 프론트엔드 > JS 튜토리얼 > $ 기호와 다른 JS 라이브러리 간의 충돌을 피하기 위한 jQuery의 방법 비교_jquery

$ 기호와 다른 JS 라이브러리 간의 충돌을 피하기 위한 jQuery의 방법 비교_jquery

WBOY
풀어 주다: 2016-05-16 16:59:09
원래의
973명이 탐색했습니다.

$ 기호는 jQuery에서 사용해야 합니다. 다른 js 라이브러리(예: 유명한 프로토타입)도 $ 기호를 정의하면 충돌이 발생하고 js 코드의 정상적인 실행에 영향을 미칩니다. jqeury는 이 문제를 방지하기 위한 몇 가지 솔루션을 제공합니다.

옵션 1:
noContribute()를 도입하고 $를 다른 기호로 바꾸세요

. 코드 복사 코드는 다음과 같습니다.

var $j = jQuery.noContribute()
$j(document ) .ready(function(){
$j("#btn1").click(function(){
alert("텍스트: " $j("#test").text());
});
});

단점: 이 코드를 도입한 후에는 현재 js 파일뿐만 아니라 jquery $에서 유용한 경우 html에서 참조하는 모든 js도 $j를 사용하여 이전 $

옵션 2:
ready 함수는 jquery의 입력 함수입니다.
$(document).ready(function(){
바꾸기할 수 있습니다. with
jQuery(document).ready(function($){}
단점: 준비된 중첩 내부의 코드에만 유효하고 중첩 외부의 코드에는 유효하지 않습니다. 모든 논리가 모두 준비 함수에 있으면 문제가 되지 않습니다. 하지만 일반적으로 준비 함수 외부에 일부 하위 함수를 작성하면 이 해결 방법은 이러한 함수에 적합하지 않으므로 이 해결 방법에는 제한이 있습니다.
옵션 3(특히 js 플러그인 개발 시 권장):

js 콘텐츠 패키지에 기능 추가

코드 복사 코드는 다음과 같습니다.
jQuery(function($){
//여기에 js 코드를 입력하세요(예: 두 번째 솔루션에서 언급한 준비 함수 및 하위 함수)
//js 파일인 경우 실제로 파일의 시작과 끝에 코드 한 줄을 추가합니다.
}

또는

코드 복사 코드는 다음과 같습니다.
(function($) {
//Your js code
})(jQuery );

이 방법은 위의 두 솔루션의 단점이 없습니다. jQuery(function($){}에 래핑된 코드에만 영향을 미칩니다. 🎜>는 다른 js 코드에 영향을 미치지 않습니다. 이는 매우 중요합니다. jquery를 사용해야 하는 js 공개 구성 요소를 작성하는 경우 견고성을 향상하려면 $ 기호 충돌을 고려해야 합니다. 옵션 1을 사용하면 다른 사람이 이를 사용할 때 계약을 준수하고 js 코드의 $를 $로 변경해야 합니다. 옵션 3을 사용하면 요구 사항 없이 구성 요소에 대한 $ 충돌의 영향을 피할 수 있습니다. 공개 구성 요소를 사용하는 사람들은 자신의 코드를 수정합니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿