aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/effects.js8
-rw-r--r--test/unit/effects.js12
2 files changed, 15 insertions, 5 deletions
diff --git a/src/effects.js b/src/effects.js
index c562d0335..5d656c96c 100644
--- a/src/effects.js
+++ b/src/effects.js
@@ -108,6 +108,10 @@ jQuery.fn.extend({
animate: function( prop, speed, easing, callback ) {
var optall = jQuery.speed(speed, easing, callback);
+ if ( jQuery.isEmptyObject( prop ) ) {
+ return this.each( optall.complete );
+ }
+
return this[ optall.queue === false ? "each" : "queue" ](function() {
var opt = jQuery.extend({}, optall), p,
hidden = this.nodeType === 1 && jQuery(this).is(":hidden"),
@@ -181,10 +185,6 @@ jQuery.fn.extend({
}
});
- if ( jQuery.isEmptyObject( prop ) ) {
- return optall.complete.call(this);
- }
-
// For JS strict compliance
return true;
});
diff --git a/test/unit/effects.js b/test/unit/effects.js
index 2c5616dd9..cefcc15a4 100644
--- a/test/unit/effects.js
+++ b/test/unit/effects.js
@@ -120,7 +120,7 @@ test("animate option (queue === false)", function () {
*/
test("animate with no properties", function() {
- expect(1);
+ expect(2);
var divs = jQuery("div"), count = 0;
@@ -129,6 +129,16 @@ test("animate with no properties", function() {
});
equals( divs.length, count, "Make sure that callback is called for each element in the set." );
+
+ stop();
+
+ var foo = jQuery("#foo");
+
+ foo.animate({});
+ foo.animate({top: 10}, 100, function(){
+ ok( true, "Animation was properly dequeued." );
+ start();
+ });
});
test("animate duration 0", function() {