Checking if jQuery is loaded vs. ready

-- JQuery 2012. 10. 9. 10:45
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

I am currently developing an ASP.NET User Control. My control has dependency on jQuery, so in order for my control to operate correctly and be robust, I needed to check that jQuery has/will be loaded.

First let's define the two states of jQuery:
 • loaded: jQuery is referenced in the current page by way of <script></script> tags.
 • ready: jQuery is loaded and the DOM is ready for manipulation.

A non-denominational web search led me to several articles that suggested one of the following constructs:


if(jQuery) alert('jQuery is loaded.');
 
if(typeof(jQuery) != 'undefined') alert('jQuery is loaded.');


That makes sense; however, these simply don't work — at least not in all browsers. In actual practice, these tell us if jQuery is ready, not loaded.

Instead, I determined that the most reliable means of checking if jQuery is loaded is to check if the $ function is defined:


if(typeof($) == 'function') alert('jQuery is loaded.');

Note: this will yield a false positive in the unlikely event that the $ token has been defined by something other than jQuery as a token.

I like to use this anywhere that the standard jQuery $(document).ready() construct is used:


if(typeof($) != 'function') alert('This component requires jQuery.');
else $(function() { alert('The DOM is ready for jQuery manipulation.'); });


출처 : http://www.codeproject.com/Tips/263426/Checking-if-jQuery-is-loaded-vs-ready

posted by 어린왕자악꿍