jQuery와 다른 JS Library 함께 쓰기 ( noConflict ) |
[이전강좌] $(document).ready() 와 $(window).load() 의 차이.
jQuery 는 해당 library 를 사용을 위한 namespace 로 "jQuery" 를 지정했고,
$ 를 그 alias 로 지정해놓았다.
하지만 다른 유명한 JS Library 들도 $ 를 namespace alias 로 사용하는 경우가 있어
jQuery 와 다른 library 사이에 충돌이 일어나는 경우가 있다.
충돌이 일어나면, 내가 현재 사용하는 $ 가 어떤 library 에 귀속되는 녀석인지 판별하기가 어렵다.
그래서 가능하면 한 개의 library 로 해결할 수 있다면 다른 library 를 함께 사용하는 것은 비추되고 있다.
Conflict(충돌)도 문제이지만, library 가 늘어남에 따라 더 긴 loading 시간을 요구하기 때문이다.
여튼 충돌이 발생하면, "jQuery.noConflict()" 함수를 사용해서 문제를 해결할 수 있는데,
이에 대한 적용 방법은 크게 3가지가 있다.
새로운 alias 정의하기 |
var $jq = jQuery.noConflict();
위와 같이 $jq 라는 새로운 alias 를 지정하여 $ 대신 $jq 를 사용하면 된다.
물론 위의 경우는 예제이고, $abc, newjQueryAlias 등 다른 이름을 사용해도 무방하다.
IIFE 사용하기 |
IIFE 는 Immediately Invoked Function Expression 의 약자로,
함수를 정의하면서 바로 사용하는 자바 스크립트의 특징 있는 함수 중 하나이다.
IIFE 를 사용하면서 해당 function 으로 jQuery 를 전달하고, IIFE 는 이를 $ 로 받는다.
그럼 Local scope 로 $ 를 jQuery에 대한 alias 로 사용할 수 있다.
jQuery.noConflict();
(function($){
// jQuery 문..
})( jQuery );
jQuery(document).ready() 의 argument 이용 |
jQuery(document).ready 의 reference 문서를 보면,
ready 함수는 인자로 받는 callback 함수에 global jQuery reference 를 전달하는 것으로 표기되어 있다.
따라서 다음과 같이 사용할 수 있다.
jQuery(document).ready( function($){
// jQuery 문...
});
'프로그래밍 놀이터 > Web' 카테고리의 다른 글
[jQuery/Tutorial] Selector 를 통해 Element 선택하기. (0) | 2013.07.17 |
---|---|
[jQuery/Tutorial] DOM의 Attributes 사용하기. (0) | 2013.07.16 |
[jQuery/Tutorial] $(document).ready() 와 $(window).load() 의 차이. (0) | 2013.07.11 |
[jQuery/Tutorial] $ 와 $() 의 차이. (0) | 2013.07.10 |
[CSS] 언제 id 를 사용하고, 언제 class 를 사용해야 할까? (0) | 2013.07.04 |
댓글