24'C 구름 많음
서울 강남구
한 웹페이지에 여러 자바스크립트 라이브러리를 사용하는 경우 $ 변수가 충돌하는 경우가 발생한다.
이러한 이유료 jQuery에서는 jQuery.noConflict() 메서드를 통하여 이 문제를 피할 수 있게 하고 있다.
<script src=
"다른 자바스크립트 라이브러리"
></script>
<script src=
"jQuery 라이브러리"
></script>
<script>
$.noConflict();
// $ 변수에 대한 제어권을 포기
// 이제 다른 자바스크립트 라이브러리를 사용한 코드에서는
// $ 변수를 사용하고 jQuery 에서는 jQuery 객체를 사용
</script>
$.noConflict()는 jQuery 라이브러리가 불려진 직후 실행되기 때문에 이때까지는 $ 변수에 대한 제어권을 jQuery가 가지고 있지만 해당 메서드의 실행후 $ 변수에 대한 제어권을 포기하게 된다.
하지만 $변수에 대한 제어권을 포기한 이후에도 다른 라이브러리와 충돌 없이 사용할 수 있는 방법들이 있다.
jQuery.noConflict();
jQuery(document).ready(
function
($) {
// 이 함수 안에서는 $를 jQuery가 사용
});
// 바깥에서는 $를 다른 라이브러리가 사용
.ready() 메서드가 콜백함수에게 jQuery 객체를 인자로 넘겨주고, 그 인자를 받아 함수범위 안에서 $ 변수를 jQuery 객체로 사용
jQuery.noConflict();
(
function
($) {
// 이 함수 안에서는 $를 jQuery가 사용
})(jQuery);
// 바깥에서는 $를 다른 라이브러리가 사용
스스로 실행되는 익명함수를 만들고 jQuery 객처릴 인자로 넘겨준 다음, 그 인자를 받아 함수범위 안에서 $ 변수를 jQuery 객체로 사용