我正在阅读有关jquery queue()
here的内容。第一个答案非常全面:
var theQueue = $({}); // jQuery on an empty object - a perfect queue holder
$.each([1,2,3],function(i, num) {
// lets add some really simple functions to a queue:
theQueue.queue('alerts', function(next) {
// show something, and if they hit "yes", run the next function.
if (confirm('index:'+i+' = '+num+'\nRun the next function?')) {
next();
}
});
});
// create a button to run the queue:
$("<button>", {
text: 'Run Queue',
click: function() {
theQueue.dequeue('alerts');
}
}).appendTo('body');
// create a button to show the length:
$("<button>", {
text: 'Show Length',
click: function() {
alert(theQueue.queue('alerts').length);
}
}).appendTo('body');
我无法理解next()
(第8行)是如何运作的。我明白了,如果我发表评论,“下一个”确认框无法弹出,直到我再次按下按钮,但我认为next()
主要用于遍历dom。在这里,似乎它告诉函数再次运行。
此外,如果confirm
框的排队在each()
函数内,为什么在没有next()
的情况下它们都会成功排队?
答案 0 :(得分:3)
next
是要排队的回调函数中的参数。 不要将它与用于DOM导航的jQuery集合方法.next()
混淆。
您实际上可以在回调as I demonstrate here中创建所需的参数。名称next
并不特别重要;它只是在文档中有意义。
这个参数本身就是一个由jQuery的内部传递给.queue
的函数(回调)。