Only bind .ready() once per instance of jQuery - and only bind if the ready() method...
authorJohn Resig <jeresig@gmail.com>
Wed, 22 Aug 2007 06:51:41 +0000 (06:51 +0000)
committerJohn Resig <jeresig@gmail.com>
Wed, 22 Aug 2007 06:51:41 +0000 (06:51 +0000)
src/event/event.js
src/intro.js

index 2d00711..a4a99d9 100644 (file)
@@ -529,6 +529,9 @@ jQuery.fn.extend({
         * @see $(Function)
         */
        ready: function(f) {
+               // Attach the listeners
+               bindReady();
+
                // If the DOM is already ready
                if ( jQuery.isReady )
                        // Execute the function immediately
@@ -928,7 +931,13 @@ jQuery.extend({
                };
                        
        });
-       
+
+var readyBound = false;
+
+function bindReady(){
+       if ( readyBound ) return;
+       readyBound = true;
+
        // If Mozilla is used
        if ( jQuery.browser.mozilla || jQuery.browser.opera )
                // Use the handy event callback
@@ -974,3 +983,4 @@ jQuery.extend({
 
        // A fallback to window.onload, that will always work
        jQuery.event.add( window, "load", jQuery.ready );
+}
index 9c2f985..af50383 100644 (file)
@@ -1,2 +1 @@
-// prevent execution of jQuery if included more than once
-if ( typeof jQuery == "undefined" ) (function(){
+(function(){