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).
This commit is contained in:
parent
3fb4779abb
commit
f53aa62fd3
|
@ -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
|
||||
|
@ -929,6 +932,12 @@ 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 );
|
||||
}
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
// prevent execution of jQuery if included more than once
|
||||
if ( typeof jQuery == "undefined" ) (function(){
|
||||
(function(){
|
||||
|
|
Loading…
Reference in a new issue