diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2011-07-28 15:16:20 +0200 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2011-07-28 15:16:20 +0200 |
commit | 5a45f483d73578dd147229d412998bba4a44c35b (patch) | |
tree | 540e9c5ca8502fa0277d072de973a9c676134793 /ui/jquery.effects.core.js | |
parent | 5297b7bc4250462213b05ad2763fe99d0f8dedec (diff) | |
parent | 0ba493d3b4f9d6da35cadc499e9f7ebb6adb31b3 (diff) | |
download | jquery-ui-5a45f483d73578dd147229d412998bba4a44c35b.tar.gz jquery-ui-5a45f483d73578dd147229d412998bba4a44c35b.zip |
Merge branch 'master' into widget-delegation
Diffstat (limited to 'ui/jquery.effects.core.js')
-rw-r--r-- | ui/jquery.effects.core.js | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/ui/jquery.effects.core.js b/ui/jquery.effects.core.js index 00a803360..b08cd6cf4 100644 --- a/ui/jquery.effects.core.js +++ b/ui/jquery.effects.core.js @@ -536,6 +536,7 @@ $.fn.extend({ effect: function( effect, options, speed, callback ) { var args = _normalizeArguments.apply( this, arguments ), mode = args.mode, + queue = args.queue, effectMethod = $.effects.effect[ args.effect ], // DEPRECATED: remove in 2.0 (#7115) @@ -554,9 +555,32 @@ $.fn.extend({ } } + function run( next ) { + var elem = $( this ), + complete = args.complete, + mode = args.mode; + + function done() { + if ( $.isFunction( complete ) ) { + complete.call( elem[0] ); + } + if ( $.isFunction( next ) ) { + next(); + } + } + + // if the element is hiddden and mode is hide, + // or element is visible and mode is show + if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { + done(); + } else { + effectMethod.call( elem[0], args, done ); + } + } + // TODO: remove this check in 2.0, effectMethod will always be true if ( effectMethod ) { - return effectMethod.call( this, args ); + return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); } else { // DEPRECATED: remove in 2.0 (#7115) return oldEffectMethod.call(this, { |