jQuery δεδομένα - μέθοδος queue()

Παράδειγμα

Εμφάνιση της μήκους της ουράς:

function showIt() {
  var n = div.queue("fx");
  $("span").text( n.length );      
  setTimeout(showIt, 100);
}

Προσωπική δοκιμή

Ορισμός και χρήση

Η μέθοδος queue() εμφανίζει ή操作ει την ουρά λειτουργιών που εκτελούνται στα στοιχεία που ταιριάζουν.

Γλώσσα

.queue(queueName)
Παράμετροι Περιγραφή
queueName Οptional. Αξία字符串, περιέχει το όνομα της σειράς. Η προεπιλεγμένη είναι fx, η τυπική σειρά αποτελεσμάτων.

Εκτέλεση ουράς

Η μέθοδος queue()操作ει την ουρά λειτουργιών που εκτελούνται στα στοιχεία που ταιριάζουν.

Γλώσσα

.queue(queueName,newQueue)
Παράμετροι Περιγραφή
queueName Οptional. Αξία字符串, περιέχει το όνομα της σειράς. Η προεπιλεγμένη είναι fx, η τυπική σειρά αποτελεσμάτων.

Λεπτομερής περιγραφή

Κάθε στοιχείο μπορεί να έχει μια ή περισσότερες ουρές λειτουργιών που προστίθενται από το jQuery. Σε πολλές εφαρμογές, χρησιμοποιείται μόνο μια ουρά (ονομαζόμενη fx). Η ουρά εκτελείται ασynchronously μια σειρά ενεργειών στο στοιχείο χωρίς να διακόπτει την εκτέλεση του προγράμματος. Ένας τυπικός παράδειγμα είναι η κλήση πολλαπλών μεθόδων αニματογράφησης στο στοιχείο. Για παράδειγμα:

$('#foo').slideUp().fadeIn();

Όταν εκτελείται αυτή η πρόταση, το στοιχείο ξεκινά αμέσως την κίνηση σφίξεως, αλλά η μετάβαση φωτεινότητας τοποθετείται στη σειρά fx, και θα καλείται μόνο όταν ολοκληρωθεί η κίνηση σφίξεως.

Η μέθοδος .queue() επιτρέπει να χειριστούμε άμεσα τη σειρά των συναρτήσεων. Η κλήση της .queue() με αναδρομική συνάρτηση είναι ιδιαίτερα χρήσιμη; Επιτρέπει να τοποθετήσουμε μια νέα συνάρτηση στο τέλος της σειράς.

Αυτή η λειτουργία είναι παρόμοια με τις αναδρομικές συναρτήσεις που παρέχονται από τα μεθόδους αニματιάσεων, αλλά δεν χρειάζεται να ορίσουμε αναδρομική συνάρτηση κατά τη διάρκεια της εκτέλεσης της αニματιάσης.

$('#foo').slideUp();
$('#foo').queue(function() {
  alert('Η Αニματίαση ολοκληρώθηκε.');
  $("this").dequeue();
});;

Είναι ισοδύναμο με:

$('#foo').slideUp(function() {
  alert('Η Αニματίαση ολοκληρώθηκε.');
);

Λάβετε υπόψη ότι όταν προσθέτουμε συνάρτηση μέσω της .queue(), πρέπει να διασφαλίσουμε ότι τελικά καλείται η .dequeue(), ώστε η επόμενη συνάρτηση στη σειρά να εκτελεστεί.

Παράδειγμα 1

Διαχειριστείτε τη σειρά μιας προσαρμοσμένης συνάρτησης:

$("document.body").click(function () {
  $("div").show("slow");
  $("div").animate({left:'+=200'},2000);
  $("div").queue(function () {
    $("this").addClass("newcolor");
    $("this").dequeue();
  });;
  $("div").animate({left:'-=200'},500);
  $("div").queue(function () {
    $("this").removeClass("newcolor");
    $("this").dequeue();
  });;
  $("div").slideUp();
);

Προσωπική δοκιμή

Παράδειγμα 2

Ρροσθέστε μια σειρά αριθμών για να διαγράψετε τη σειρά:

$("#start").click(function () {
  $("div").show("slow");
  $("div").animate({left:'+=200'},5000);
  $("div").queue(function () {
    $("this").addClass("newcolor");
    $("this").dequeue();
  );
  $("div").animate({left:'-=200'},1500);
  $("div").queue(function () {
    $("this").removeClass("newcolor");
    $("this").dequeue();
  );
  $("div").slideUp();
);
$("#stop").click(function () {
  $("div").queue("fx", []);
  $("div").stop();
);

Προσωπική δοκιμή