ready() 콜백 함수에 인자 넘기기

가끔 한 페이지에서 두 개 이상의 자바스크립트 라이브러리를 사용해야 할 때가 있다. 많은 라이브러리가 $ 식별자를 (짧고 간결하기 때문에) 사용하므로 라이브러리들이 $ 식별자를 사용할 때의 충돌을 막을 방법이 필요하다.

다행히도 jQuery는 다른 라이브러리에 $ 식별자에 대한 제어를 넘겨주는 jQuery.noConflict() 메서드를 제공한다. 보통 jQuery.noConflict()는 다음과 같은 형식으로 사용한다.

							<script type="text/javascript" src="prototype.js"></script>
							<script type="text/javascript" src="jquery.js"></script>
							<script type="text/javascript">
								jQuery.noConflict();
							</script>
							<script type="text/javascript" src="myscript.js"></script>											
						

우선 다른 라이브러리(예를 들어, Prototype)를 포함하고, 그 다음 jQuery를 포함해 $를 점유한다. 그러고 나서 .noConflict()를 호출해 $에 대한 제어권을 놓아주어, 이전에 로드한 라이브러리(Prototyp)에서 $를 사용할 수 있게 한다. 이렇게 하면 스크립트에서는 두 라이브러리를 모두 사용할 수 있게 된다. 하지만 jQuery 메서드를 사용하려면 $ 대신 jQuery라는 식별자를 사용해야 한다.

.ready() 메서드에는 이 상황에 도움이 될 만한 한 가지 기법이 더 있다. 콜백 함수는 jQuery 객체 자체를 인잘 받을 수 있는데, 이는 충돌을 피하려고 이름을 변경한 이후에도 내부에서는 $를 그대로 사용할 수 있으므로 매우 효과적이다.

							jQuery(document).ready(function($){
								// 여기에는, $를 그대로 사용할 수 있다.
							});										
						

혹은, 앞서 배운 방법을 사용해 더 짧게 기술할 수도 있다.

							jQuery(function ($) {
								// $를 사용하는 코드
							});