>  기사  >  웹 프론트엔드  >  jquery_jquery에서 달러 기호 명명 충돌 문제 해결

jquery_jquery에서 달러 기호 명명 충돌 문제 해결

WBOY
WBOY원래의
2016-05-16 17:04:461005검색

Jquery에서 $는 JQuery의 별칭입니다. $가 사용되는 모든 위치는 JQuery로 대체될 수도 있습니다. 예를 들어 $('#msg')는 JQuery('#msg')와 동일합니다. 그러나 여러 js 라이브러리를 도입하고 $ 기호가 다른 js 라이브러리에도 정의되어 있으면 $ 기호를 사용할 때 충돌이 발생합니다. 다음은 jquery.js와 Prototype.js라는 두 개의 라이브러리 파일을 도입한 예입니다.

첫 번째 경우: jquery.js는 프로토타입.js 다음에 도입됩니다. 예: script src = " 프로토타입.js " type = " text/javascript " />
script src = " jquery.js " type = " text/javascript " />
이 경우 자체 js 코드에 다음을 작성합니다.
$( ' #msg ' ).hide( ); >$는 항상 jquery에 정의된 $ 기호를 나타내며 JQuery('#msg').hide();로 작성할 수도 있습니다. 프로토타입.js에 정의된 $를 사용하려면 나중에 소개하겠습니다.

두 번째 사례: jquery.js가 프로토타입.js보다 먼저 도입되었습니다. 예:
script src = " jquery.js " type = " text/javascript " />
script src = " 프로토타입.js " type = " text/javascript " /> 이 경우 자체 js 코드에 다음을 작성합니다.
$( ' #msg ' ).hide( ); $는 이때 프로토타입.js에 정의된 $ 기호를 나타냅니다. jquery.js에서 팩토리 선택 함수를 호출하려면 JQuery('#msg').hide( )라는 전체 이름만 사용할 수 있습니다.
다음에서는 먼저 js 라이브러리 파일 순서를 도입한 첫 번째 경우에 서로 다른 js 라이브러리에 정의된 $ 기호를 올바르게 사용하는 방법을 소개합니다.

1. JQuery.noConstrict() 사용
이 메서드의 기능은 jquery.js가 나중에 도입되었기 때문에 Jquery가 $의 소유권을 포기하고 $의 제어권을 프로토타입.js에 반환하도록 하는 것입니다. . 따라서 $를 제어하는 ​​마지막 것은 jquery입니다. 반환 값은 JQuery입니다. 코드에서 이 메서드를 호출한 후에는 $를 사용하여 jquery 메서드를 호출할 수 없습니다. 이때 $는 프로토타입.js 라이브러리에 정의된 $를 나타냅니다. 다음과 같습니다: JQuery.noConflect();
// 여기에는 더 이상 $('#msg').hide()를 쓸 수 없습니다. 이때 $는 프로토타입.js에 정의된 $ 기호를 나타냅니다.
JQuey( ' #msg ' ).hide();
이제부터 $는 프로토타입.js에 정의된 $를 나타냅니다. jquery.js에서 전체 이름은 JQuery입니다.

2. JQuery 별칭 사용자 정의
첫 번째 방법에서 JQuery.noContric() 메서드를 사용한 후 JQuery의 전체 이름만 사용하는 것이 번거롭다면 별칭을 재정의할 수도 있습니다. . 다음과 같습니다:
var $j = JQuery.noConstrict();
$j( ' #msg ' ).hide(); // 여기서 $j는 JQuery를 나타냅니다.
이제부터 $는 정의된 프로토타입을 나타냅니다. .js 및 jquey.js의 $는 더 이상 사용할 수 없습니다. jquey.js에서는 JQuery의 별칭으로 $j만 사용할 수 있습니다.

3. 명령문 블록을 사용합니다. 다음과 같이 jquery.js에 정의된 $를 사용합니다. $ ){ $( ' #msg ' ).hide(); // 이때 전체 Ready 이벤트 메소드에 사용되는 $는 jquery.js에 정의된 $입니다. }); 🎜> (function($){ $( ' #msg ' ).hide(); // 이때 jquery.js에 정의된 $가 이 명령문 블록에 사용됩니다. })(JQuery)
If in js 라이브러리 파일 순서를 소개하는 두 번째 경우, jquery.js에서 $를 사용하는 방법에서는 위에서 소개한 다음과 같은 명령문 블록 방법을 계속 사용할 수 있습니다.

script src = " jquery.js " type = " text/javascript " />

script src = " 프로토타입.js " type = " text/javascript " />

script type = " text/javascript " >
(function ($){ $( ' #msg ' ).hide(); // 이때 이 문장 블록에서는 jquery.js에 정의된 $를 사용합니다. })(JQuery)
script > 이런 문장 블록 활용 방법은 우리가 직접 jquery 플러그인을 작성할 때, 특정 작업 과정에서 다양한 js 라이브러리를 순차적으로 도입하는 방법을 모르기 때문에 이 작성 방법을 사용해야 합니다. , 그리고 이런 종류의 진술 블록 쓰기 방법은 충돌을 막을 수 있습니다.
ps: jquery에서 특수문자의 의미:
# Instruction id 🎜>~ Brother
Next : Sub(다기능)
() 기능 필터링 및 검색

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.