2011-07-05 4 views
0
나는 익명 함수 호출 jQuery 오브젝트를 통과하지 않으면 어떻게됩니까

:jQuery를 - 글로벌 충돌을 피하기위한 짧은 버전

$(function($) {...} 

대신 여전히 모든 스크립트에서 작동하는 것 같다

$(function($) {...} (jQuery); 

을 그렇다면 왜 그물에 명시된대로 명시 적으로 전달해야합니까?

+0

자세한 내용은 jQuery의 noConflict 문서를 참조하십시오. http://api.jquery.com/jQuery.noConflict/ – Tim

답변

2

주 개체로 $를 사용하는 다른 라이브러리가 있으면 어떻게됩니까? 이 경우 두 번째 라이브러리의 객체가 함수에 전달되고 플러그인이 중단 될 수 있습니다.

foo라는 내 라이브러리를 사용한다고 가정 해보십시오. 그 도서관에서 나는 내 글로벌 대상으로 #을 사용한다. 내 라이브러리를 사용하려면 #로 사용하여 코드를 시작

#.getAllLinks().follow(); 

지금 당신이 jQuery를 같은 루트 객체로 $ 기호를 사용하는 또 다른 라이브러리를 사용하는 것이 상상한다. (저는 Google Analytics가 그러한 라이브러리라고 생각합니다). 이 경우 브라우저에로드 할 최신 라이브러리가 경쟁에서 이기고 $ 표지판을 제어합니다. 이 경우 $을 플러그인에 사용하려면 실제로 잘못된 라이브러리를 참조하는 것입니다. 그러나 명시 적으로 jQuery 이름을 전달할 때 (jQuery의 루트 객체는 $ 부호 또는 jQuery를 사용하여 액세스 할 수 있음), 플러그인의 범위에서 다른 라이브러리가 아닌 jQuery를 사용하는지 확인할 수 있습니다. :)

관련 문제