Added a performance improvement to .hide()/.show() that helps to prevent constant reflows from occurring. Fixes #4038.
This commit is contained in:
parent
136a459f4c
commit
0ae78024c2
1 changed files with 13 additions and 1 deletions
14
src/fx.js
14
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;
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue