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

しかし、(8行目)がどのように機能しているか理解できませんnext()。コメントアウトすると、ボタンをもう一度押すまで「次へ」の確認ボックスが表示されないことがわかりますがnext()、主にDOMをトラバースするために使用されたと思います。ただし、ここでは、関数に再度実行するように指示しているようです。

また、confirmボックスのキューイングが関数内にある場合、なぜそれらはすべて、 ?each()なしで正常にキューイングされるのでしょうか。next()

4

1 に答える 1

3

nextキューへのコールバック関数のパラメーターです。 DOM ナビゲーションに使用される jQuery コレクション メソッドであると混同しないでください。.next()

ここで示すように、実際には、コールバックで必要なパラメータを任意に作成できます。名前nextは特に重要ではありません。ドキュメントでは意味があります。

.queueこのパラメーター自体は、jQuery の内部によって渡される関数 (コールバック) です。

于 2013-02-26T06:09:48.077 に答える