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
14
src/fx.js
14
src/fx.js
|
@ -44,7 +44,13 @@ jQuery.fn.extend({
|
||||||
elemdisplay[ tagName ] = display;
|
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");
|
var old = jQuery.data(this[i], "olddisplay");
|
||||||
if ( !old && old !== "none" )
|
if ( !old && old !== "none" )
|
||||||
jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
|
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";
|
this[i].style.display = "none";
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue