From: John Resig Date: Mon, 9 Feb 2009 15:58:12 +0000 (+0000) Subject: Added a performance improvement to .hide()/.show() that helps to prevent constant... X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;ds=sidebyside;h=0ae78024c23dd3ef4bcea883338d975dcf843597;hp=136a459f4c24880f6d07f26c07e56451385637e0;p=jquery.git Added a performance improvement to .hide()/.show() that helps to prevent constant reflows from occurring. Fixes #4038. --- diff --git a/src/fx.js b/src/fx.js index 39456e0..3d00515 100644 --- a/src/fx.js +++ b/src/fx.js @@ -44,7 +44,13 @@ jQuery.fn.extend({ elemdisplay[ tagName ] = display; } - this[i].style.display = jQuery.data(this[i], "olddisplay", display); + jQuery.data(this[i], "olddisplay", display); + } + + // Set the display of the elements in a second loop + // to avoid the constant reflow + for ( var i = 0, l = this.length; i < l; i++ ){ + this[i].style.display = jQuery.data(this[i], "olddisplay"); } } @@ -60,8 +66,14 @@ jQuery.fn.extend({ var old = jQuery.data(this[i], "olddisplay"); if ( !old && old !== "none" ) jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display")); + } + + // Set the display of the elements in a second loop + // to avoid the constant reflow + for ( var i = 0, l = this.length; i < l; i++ ){ this[i].style.display = "none"; } + return this; } },