$ 기호는 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을 사용하면 요구 사항 없이 구성 요소에 대한 $ 충돌의 영향을 피할 수 있습니다. 공개 구성 요소를 사용하는 사람들은 자신의 코드를 수정합니다.