clearQueue and next should now work with default fx on all browsers
authorYehuda Katz <wycats@gmail.com>
Mon, 13 Jul 2009 22:21:40 +0000 (22:21 +0000)
committerYehuda Katz <wycats@gmail.com>
Mon, 13 Jul 2009 22:21:40 +0000 (22:21 +0000)
src/data.js
test/unit/data.js

index 8714ab9..bf54e75 100644 (file)
@@ -130,11 +130,11 @@ jQuery.fn.extend({
                if ( data === undefined )\r
                        return jQuery.queue( this[0], type );\r
 \r
-               return this.each(function(){\r
+               return this.each(function(i, elem){\r
                        var queue = jQuery.queue( this, type, data );\r
 \r
-                        if( type == "fx" && queue.length == 1 )\r
-                               queue[0].call(this);\r
+                       if( type == "fx" && queue.length == 1 )\r
+                               queue[0].call(this, function() { jQuery(elem).dequeue(type); });\r
                });\r
        },\r
        dequeue: function(type){\r
@@ -143,6 +143,6 @@ jQuery.fn.extend({
                });\r
        },\r
        clearQueue: function(type){\r
-               return this.queue( type, [] );\r
+               return this.queue( type || "fx", [] );\r
        }\r
 });
\ No newline at end of file
index 5d390e1..812ccd2 100644 (file)
@@ -180,22 +180,6 @@ test("queue(name) passes in the next item in the queue as a parameter", function
        div.removeData();\r
 });\r
 \r
-       expect(1);\r
-       \r
-       var div = jQuery({});\r
-       var counter = 0;\r
-       \r
-       div.queue("foo", function(next) {\r
-               counter++;\r
-               jQuery(this).clearQueue("foo");\r
-               next();\r
-       }).queue("foo", function(next) {\r
-               counter++;\r
-       });\r
-       \r
-       div.dequeue("foo");\r
-       \r
-       equals(counter, 1, "the queue was cleared");\r
 test("queue(name) passes in the next item in the queue as a parameter", function() {\r
        expect(2);\r
        \r
@@ -229,12 +213,10 @@ test("queue() passes in the next item in the queue as a parameter to fx queues",
        }).queue(function(next) {\r
                equals(++counter, 2, "Next was called");\r
                next();\r
-       }).queue(function() {\r
+       }).queue("bar", function() {\r
                equals(++counter, 3, "Other queues are not triggered by next()")\r
        });\r
        \r
-       div.dequeue();\r
-       \r
        div.removeData();\r
 });\r
 \r
@@ -255,6 +237,8 @@ test("clearQueue(name) clears the queue", function() {
        div.dequeue("foo");\r
        \r
        equals(counter, 1, "the queue was cleared");\r
+       \r
+       div.removeData();\r
 });\r
 \r
 test("clearQueue() clears the fx queue", function() {\r
@@ -265,13 +249,12 @@ test("clearQueue() clears the fx queue", function() {
        \r
        div.queue(function(next) {\r
                counter++;\r
-               jQuery(this).clearQueue();\r
-               next();\r
+               setTimeout(function() { jQuery(this).clearQueue(); next(); }, 50);\r
        }).queue(function(next) {\r
                counter++;\r
        });\r
        \r
-       div.dequeue();\r
-       \r
        equals(counter, 1, "the queue was cleared");\r
-})\r
+       \r
+       div.removeData();\r
+});\r