3

queue() 我在这里阅读有关 jquery的信息。第一个答案非常全面:

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');

jsfiddle

但是,我不明白next()(第 8 行)是如何工作的。我知道如果我将其注释掉,“下一个”确认框将无法弹出,直到我再次按下按钮,但我认为next()主要用于遍历 dom。但在这里,它似乎在告诉函数再次运行。

另外,如果confirm盒子的排队在each()函数内,为什么没有next()?

4

1 回答 1

3

next是要排队的回调函数中的参数。 不要将它与.next()用于 DOM 导航的 jQuery 集合方法混淆。

正如我在这里演示的那样,您实际上可以在回调中将参数设置为任何您想要的。这个名字next不是特别重要;它在文档中才有意义。

这个参数本身就是一个.queue由 jQuery 内部传递给的函数(回调)。

于 2013-02-26T06:09:48.077 回答