Eine zweite Fancybox öffnen In einer anderen Fancybox!

8

Hey! Ich habe Probleme mit meinen Fancyboxen!

Ich starte ein Formular in einer Fancybox. Normalerweise wird es von fancybox in einem iframe-Modus geöffnet (da es als Widget aus anderen Domänen gestartet wird) . Innerhalb dieses Iframes öffne ich eine zweite Fancybox, um Validierungsfehler anzuzeigen. All das - funktioniert gut.

Aber Wenn ein Benutzer die URL zum Formular öffnet, muss das Formular in einer Fancybox angezeigt werden, die das Formular mit type: inline aufruft. Das ist der Fall, wenn die zweite Fancybox nicht über die Eltern-Fancybox hinausfliegt, sondern sie ersetzt - und mein Formular verschwindet.

Also ... Wie starte ich mehrere Instanzen von fancybox?

    
Anders 04.05.2011, 07:49
quelle

5 Antworten

10

Die schlechte Nachricht ist, dass fancybox ein Single-Instance-Skript ist. Beim Laden der Seite werden alle Overlay-DIVs erstellt. Alle Links und andere Elemente, die an fancybox gebunden sind, werden diese Overlays einfach wiederverwenden. Wenn fancybox mehrere Instanzen behandeln würde, wäre ein mehr oder weniger großes Überschreiben des Skripts erforderlich.

    
Rafael 04.05.2011, 08:14
quelle
8

Das habe ich erreicht, indem ich afterClose benutzt habe und meine vorherige fancybox wieder geöffnet habe

%Vor%

Dies wird ausgelöst, wenn Sie Modal 2 schließen und Modal 1 erneut öffnen.

    
bladefist 28.11.2012 19:23
quelle
0

Aus Gründen der Benutzerfreundlichkeit und des Designs sollten Sie dies niemals versuchen, da dies eine sichere Art ist, eine schreckliche Benutzererfahrung zu erzeugen. Aus diesem Grund unterstützen die meisten modalen Box-Frameworks das nicht.

Im Allgemeinen, wenn Sie in Dinge laufen, die nicht unterstützt werden, sei es durch den Browser oder durch eine bekannte Bibliothek, hören Sie auf und überlegen Sie, ob es einen Grund für die fehlende Unterstützung gibt, und meistens werden Sie feststellen dass die fehlende Unterstützung von Entwurf ist.

    
Martin Jespersen 04.05.2011 08:31
quelle
0

Das habe ich mit dem beforeClose Callback geschafft.

Legen Sie vor dem Schließen des Fensters eine Zeitüberschreitungsfunktion fest, um das andere Fenster zu öffnen, und geben Sie im Rückruf false zurück, um zu verhindern, dass Fancybox das Fenster schließt.

%Vor%     
noplanman 27.12.2014 21:08
quelle
0

Sie können dies erreichen, wenn Sie die erste fancybox mit iframe öffnen:

%Vor%     
Tone Škoda 23.05.2015 10:58
quelle

Tags und Links