Added a next() shortcut for queues
authorYehuda Katz <wycats@gmail.com>
Sun, 12 Jul 2009 14:31:32 +0000 (14:31 +0000)
committerYehuda Katz <wycats@gmail.com>
Sun, 12 Jul 2009 14:31:32 +0000 (14:31 +0000)
src/data.js
test/unit/data.js

index ac069ce..e429c0d 100644 (file)
@@ -92,7 +92,7 @@ jQuery.extend({
                        fn = queue[0];\r
 \r
                if( fn !== undefined )\r
-                       fn.call(elem);\r
+                       fn.call(elem, function() { jQuery(elem).dequeue(type); });\r
        }\r
 });\r
 \r
index fa56891..3389ef3 100644 (file)
@@ -157,4 +157,25 @@ test("queue() with other types",function() {
        \r
        // Clean up\r
        $div.removeData();\r
+});\r
+\r
+test("queue() passes in the next item in the queue as a parameter", function() {\r
+       expect(2);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue("foo", function(next) {\r
+               equals(++counter, 1, "Dequeueing");\r
+               next();\r
+       }).queue("foo", function(next) {\r
+               equals(++counter, 2, "Next was called");\r
+               next();\r
+       }).queue("bar", function() {\r
+               equals(++counter, 3, "Other queues are not triggered by next()")\r
+       });\r
+       \r
+       div.dequeue("foo");\r
+       \r
+       div.removeData();\r
 })\r