2016-07-25 15 views
0

Ich bin dabei, die generischen Warnungen auf einer Seite durch eine colorbox-Behandlung zu ersetzen. Ich bin derzeit mit versteckten Divs und href Referenz Dialoge zur Interaktion mit dem Benutzer entlang dieser Linien bauen:jquery colorbox schließen überlappende Dialoge beeinflussen?

$.colorbox({ 
      inline: true, 
      open: true, 
      href: "#modalAlert", /*id of hidden div*/ 
      onClosed: function() { 
       $("#modalAlert").hide(); 
      }, 
      onOpen: function() { 
       $("#modalAlert").show(); 
      }, 
      closeButton: false 
     }); 

Ich verwende ein ähnliches Stück Code, um einen Dialog zu zeigen, Eingangsdaten zu sammeln. Ich möchte ein wenig Validierungsprüfung für die Eingabedaten durchführen. In der Methode, in der ich die Daten verwende, gebe ich $.colorbox.close() aus, um das Eingabefeld zu verwerfen. Wenn die Validierung fehlschlägt, zeige ich eine Warnung mit einer Nachricht an, um anzuzeigen, um was für ein Problem es sich handelt. Wenn ich versuche, die Methode zum Erstellen der oben aufgeführten Colorbox-Warnung aufzurufen, wird nichts angezeigt. Ich weiß, dass der Code ausgeführt wird, aber die erwartete Warnung wird nicht angezeigt.

Wenn ich den Code debuggen, sehe ich die $.colorbox.close() ausführen, aber das Eingabefeld ist immer noch sichtbar. Es erscheint, dass es die Box erst später irgendwo in der Methode tatsächlich tötet. Es scheint mir, dass es auch meine Warnung töten könnte, so dass es scheint, dass es nie aufgetaucht ist. Gibt es eine Möglichkeit, die $.colorbox.close() an der Spitze der Methode zu erhalten, um sofort auszuführen (und das Eingabefeld zu beenden), so dass es, wenn die nachfolgende Warnung erstellt wird, tatsächlich angezeigt wird?

Ich bin noch neu zu den Möglichkeiten von Colorbox, also bin ich offen für Alternativen. Der Code, mit dem ich arbeite, ist in etwas eckige eingebettet, so dass das Extrahieren eines voll funktionsfähigen Samples ein bisschen Arbeit kosten könnte. Danke für jede Eingabe.

Antwort

0

Ich habe einen besseren Weg gefunden, diese Situation anzugehen, anstatt zu versuchen, einen separaten Alarm auszulösen. Stattdessen lege ich eine Nachricht in den bereits geöffneten Dialog. Es funktioniert und ist eine bessere UX.