Permalink
Browse files

Effects: Jump to final state and execute callbacks when $.fx.off is s…

…et to true. Fixes #6131 - Dialog breaks when $.fx.off. Partial fix for #5512 - jQuery.fx.off and effect on jQuery UI Effects.
  • Loading branch information...
1 parent c3145b6 commit 3b38025cedca458c100176c273c8d3956a7a5459 @scottgonzalez scottgonzalez committed Oct 4, 2010
Showing with 16 additions and 2 deletions.
  1. +16 −2 ui/jquery.effects.core.js
View
@@ -456,15 +456,29 @@ function standardSpeed( speed ) {
$.fn.extend({
effect: function(effect, options, speed, callback) {
var args = _normalizeArguments.apply(this, arguments),
- // TODO: make effects takes actual parameters instead of a hash
+ // TODO: make effects take actual parameters instead of a hash
args2 = {
options: args[1],
duration: args[2],
callback: args[3]
},
+ mode = args2.options.mode,
effectMethod = $.effects[effect];
- return effectMethod && !$.fx.off ? effectMethod.call(this, args2) : this;
+ if ( $.fx.off || !effectMethod ) {
+ // delegate to the original method (e.g., .show()) if possible
+ if ( mode ) {
+ return this[ mode ]( args2.duration, args2.callback );
+ } else {
+ return this.each(function() {
+ if ( args2.callback ) {
+ args2.callback.call( this );
+ }
+ });
+ }
+ }
+
+ return effectMethod.call(this, args2);
},
_show: $.fn.show,

0 comments on commit 3b38025

Please sign in to comment.