From f53aa62fd3f08ad7a05e99e3836132216a8d5c7d Mon Sep 17 00:00:00 2001 From: John Resig Date: Wed, 22 Aug 2007 06:51:41 +0000 Subject: [PATCH] Only bind .ready() once per instance of jQuery - and only bind if the ready() method is actually called (nothing is bound if window/load is used). --- src/event/event.js | 12 +++++++++++- src/intro.js | 3 +-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/event/event.js b/src/event/event.js index 2d00711..a4a99d9 100644 --- a/src/event/event.js +++ b/src/event/event.js @@ -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 ); +} diff --git a/src/intro.js b/src/intro.js index 9c2f985..af50383 100644 --- a/src/intro.js +++ b/src/intro.js @@ -1,2 +1 @@ -// prevent execution of jQuery if included more than once -if ( typeof jQuery == "undefined" ) (function(){ +(function(){ -- 1.7.10.4