diff options
Diffstat (limited to 'src/effects.js')
-rw-r--r-- | src/effects.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/effects.js b/src/effects.js index 7f54dd56e..a1ba37707 100644 --- a/src/effects.js +++ b/src/effects.js @@ -304,21 +304,29 @@ function defaultPrefilter( elem, props, opts ) { // show/hide pass + dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} ); for ( index in props ) { value = props[ index ]; if ( rfxtypes.exec( value ) ) { delete props[ index ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if( value === "show" && dataShow[ index ] !== undefined ) { + hidden = true; + } else { continue; } + } handled.push( index ); } } length = handled.length; - if ( length ) { + if ( !length ) { dataShow = data_priv.get( elem, "fxshow" ) || data_priv.access( elem, "fxshow", {} ); + } else { if ( "hidden" in dataShow ) { hidden = dataShow.hidden; } |