From e8673ae1aafe16a8a7f855958f545c710bf8133e Mon Sep 17 00:00:00 2001 From: timmywil Date: Fri, 20 Jan 2012 14:17:02 -0500 Subject: [PATCH] When stopping a show, save showing end state instead of start state to fix animation toggling issue. Fixes #10848. --- src/effects.js | 8 ++++++-- src/support.js | 7 ++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/effects.js b/src/effects.js index 6716e616a..346438174 100644 --- a/src/effects.js +++ b/src/effects.js @@ -462,8 +462,12 @@ jQuery.fx.prototype = { t.queue = this.options.queue; t.elem = this.elem; t.saveState = function() { - if ( self.options.hide && jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) { - jQuery._data( self.elem, "fxshow" + self.prop, self.start ); + if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) { + if ( self.options.hide ) { + jQuery._data( self.elem, "fxshow" + self.prop, self.start ); + } else if ( self.options.show ) { + jQuery._data( self.elem, "fxshow" + self.prop, self.end ); + } } }; diff --git a/src/support.js b/src/support.js index e881b040e..291089e2c 100644 --- a/src/support.js +++ b/src/support.js @@ -167,7 +167,7 @@ jQuery.support = (function() { // avoid an eval call (in setAttribute) which can cause CSP // to go haywire. See: https://developer.mozilla.org/en/Security/CSP if ( div.attachEvent ) { - for( i in { + for ( i in { submit: 1, change: 1, focusin: 1 @@ -222,6 +222,7 @@ jQuery.support = (function() { // hidden; don safety goggles and see bug #4512 for more information). // (only IE 8 fails this test) div.innerHTML = "
t
"; + tds = div.getElementsByTagName( "td" ); isSupported = ( tds[ 0 ].offsetHeight === 0 ); @@ -278,7 +279,7 @@ jQuery.support = (function() { offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); - if( window.getComputedStyle ) { + if ( window.getComputedStyle ) { div.style.marginTop = "1%"; support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%"; } @@ -288,7 +289,7 @@ jQuery.support = (function() { } body.removeChild( container ); - div = container = null; + div = container = null; jQuery.extend( support, offsetSupport ); });