Frage

Ich habe eine kurze Funktion bekommt, die Nachrichten auf einer Website zeigen.

function showHint() { 
    $('#notify').html('message text').show('slide', {direction: 'right'}, 500);
}

Und es gibt eine weitere Funktion, die die Nachrichten verbirgt.

function hideHint() { 
    $('#notify').hide('slide', {direction: 'right'}, 500);
}

Das Problem ist, dass wenn ich diese Funktion mehr als ein Mal nennen sie alle Nachrichten zur gleichen Zeit, und alles bricht zu zeigen versucht. Ich möchte die Funktion zweimal anrufen und dann sollte es die Animationen Warteschlange und eine Nachricht nach dem anderen zeigen. Die Funktion sollte mehr als ein Mal in der gleichen Zeit aufgerufen werden, aber eins nach dem anderen gezeigt. Die nächste Meldung sollte angezeigt werden, wenn die Tannen versteckt.

Wie kann ich das Problem lösen? Wäre schön!

War es hilfreich?

Lösung

Hier ist eine Mini-benutzerdefinierte Plugin, das ich in der Vergangenheit verwendet habe, die Ketten eine Reihe von Animationen nacheinander.

// Good for serializing animations
$.fn.chain = function(fn) {
  var elements = this;
  var i = 0;
  function nextAction() {
    if (elements.eq(i)) fn.apply(elements.eq(i), [nextAction]);
    i++;
  }
  nextAction();
};

Sie können es wie so nennen ( Hier ist ein Beispiel davon in Gebrauch ):

$(document).ready(function() {
  $('li').chain(function(nextChain) { this.slideToggle("fast", nextChain); });
});

Die Funktion, die Sie chain passieren geht eine andere Funktion, die Sie aufrufen müssen, wenn Sie mit einem Zyklus sind unten. In dem obigen Beispiel geben wir nur die nextChain Funktion als Callback zum slideToggle.

Andere Tipps

Ihre ShowHint Funktion könnte beginnen nur durch die Benachrichtigung versteckt und wenn das der Rückruf abgeschlossen wäre, was die bestehende ShowHint Funktion ist, die den Text ändern würden und es zeigen. Code sollte gegeben nicht schwierig sein, was Sie bereits getan haben.

Sie können nicht nur eine Benachrichtigung Plugin? hier sind zwei ( ein , zwei ), die ziemlich spiffy sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top