Skip to content

Commit 89dc1e0

Browse files
committed
clearQueue and next should now work with default fx on all browsers
1 parent 7cfec99 commit 89dc1e0

File tree

2 files changed

+11
-28
lines changed

2 files changed

+11
-28
lines changed

src/data.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,11 @@ jQuery.fn.extend({
130130
if ( data === undefined )
131131
return jQuery.queue( this[0], type );
132132

133-
return this.each(function(){
133+
return this.each(function(i, elem){
134134
var queue = jQuery.queue( this, type, data );
135135

136-
if( type == "fx" && queue.length == 1 )
137-
queue[0].call(this);
136+
if( type == "fx" && queue.length == 1 )
137+
queue[0].call(this, function() { jQuery(elem).dequeue(type); });
138138
});
139139
},
140140
dequeue: function(type){
@@ -143,6 +143,6 @@ jQuery.fn.extend({
143143
});
144144
},
145145
clearQueue: function(type){
146-
return this.queue( type, [] );
146+
return this.queue( type || "fx", [] );
147147
}
148148
});

test/unit/data.js

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -180,22 +180,6 @@ test("queue(name) passes in the next item in the queue as a parameter", function
180180
div.removeData();
181181
});
182182

183-
expect(1);
184-
185-
var div = jQuery({});
186-
var counter = 0;
187-
188-
div.queue("foo", function(next) {
189-
counter++;
190-
jQuery(this).clearQueue("foo");
191-
next();
192-
}).queue("foo", function(next) {
193-
counter++;
194-
});
195-
196-
div.dequeue("foo");
197-
198-
equals(counter, 1, "the queue was cleared");
199183
test("queue(name) passes in the next item in the queue as a parameter", function() {
200184
expect(2);
201185

@@ -229,12 +213,10 @@ test("queue() passes in the next item in the queue as a parameter to fx queues",
229213
}).queue(function(next) {
230214
equals(++counter, 2, "Next was called");
231215
next();
232-
}).queue(function() {
216+
}).queue("bar", function() {
233217
equals(++counter, 3, "Other queues are not triggered by next()")
234218
});
235219

236-
div.dequeue();
237-
238220
div.removeData();
239221
});
240222

@@ -255,6 +237,8 @@ test("clearQueue(name) clears the queue", function() {
255237
div.dequeue("foo");
256238

257239
equals(counter, 1, "the queue was cleared");
240+
241+
div.removeData();
258242
});
259243

260244
test("clearQueue() clears the fx queue", function() {
@@ -265,13 +249,12 @@ test("clearQueue() clears the fx queue", function() {
265249

266250
div.queue(function(next) {
267251
counter++;
268-
jQuery(this).clearQueue();
269-
next();
252+
setTimeout(function() { jQuery(this).clearQueue(); next(); }, 50);
270253
}).queue(function(next) {
271254
counter++;
272255
});
273256

274-
div.dequeue();
275-
276257
equals(counter, 1, "the queue was cleared");
277-
})
258+
259+
div.removeData();
260+
});

0 commit comments

Comments
 (0)