Geschachtelte jQuery-Schritte - Nichts wird auf Main Next angezeigt

8

Ich habe ein einfaches HTML-Formular mit verschachtelten jQuery-Schritten.

Der Haupt-Assistent hat 5 Schritte und der 3. Schritt hat einen Unter-Assistenten mit 3 Schritten.

Wenn auf "Weiter" des Hauptassistenten geklickt wird, wird der Schritt verschoben und der Inhalt wird angezeigt, aber nach dem 3. Schritt (der mit Unterassistent) bewegt sich der Tab zum vierten, aber wenn der vierte Schritt erreicht wird, wird kein Inhalt angezeigt Ich deaktiviere das jQuery-Skript, das den Unterassistenten anzeigt, der vierte Hauptschritt zeigt den Inhalt an.

Ich habe verschiedene Foren ausprobiert und habe auch schon eine Weile damit begonnen, die jQuery Steps-Bibliothek zu debuggen, konnte aber den Grund nicht herausfinden.

Jede Hilfe ist willkommen.

Hier ist der Code, der auch ausführbar ist.

%Vor% %Vor% %Vor%
    
Consult Yarla 02.09.2015, 17:54
quelle

1 Antwort

6

Probieren Sie dieses JSfiddle-Arbeitssample aus, das ich basierend auf der von @medievo in diesen Beitrag .

Offensichtlich besteht das Problem darin, dass der onStepChange -Ereignishandler für main-wizard nicht mehr aufgerufen wird, wenn sub-wizard initialisiert und angezeigt wird. Ich kann zusätzliche Informationen nach dem Debuggen der Bibliothek bereitstellen. Wird Sie auf dem Laufenden halten.

Über die Lösung:

Nehmen wir an, wir haben zwei functions , die main-wizard und sub-wizard initialisieren, indem wir jquery.steps library verwenden.

Die Funktion für main-wizard sieht folgendermaßen aus:

%Vor%

Beachten Sie, dass der onStepChanging -Handler die sub-wizard initialisiert und im ersten Aufruf anzeigt und nur in den nächsten Aufrufen angezeigt wird.

Beachten Sie auch, dass der onStepChanged -Handler die Ansicht wechselt, indem er die previous-step view ausblendet und die next-step view anzeigt.

Die Funktion für sub-wizard sieht folgendermaßen aus:

%Vor%

Beachten Sie, dass es eine if -Anweisung gibt, um zu identifizieren, ob die sub-wizard bereits initialisiert wurde oder nicht, indem Sie fragen, ob sie bereits wizard class hat, die jquery.steps hinzufügt. Falls es bereits initialisiert wurde, müssen wir nur show() it.

Beachten Sie auch, dass der onFinished -Handler das main-wizard zur Fortsetzung mit next-step macht.

Ich hoffe, dass dies hilft, Ihr Problem zu lösen.

BEARBEITEN:

Nach dem Überprüfen und Debuggen des Codes besteht das Problem darin, dass folgende jQuery query (Zeile # 1196 von library) alle steps content von main-wizard und sub-wizard abruft und den Übergang durchführt (aus dem Schritt, der die Unterassistent zum nächsten Schritt), um zwischen ihnen verwirrt zu werden.

%Vor%

Das Ändern dieser Zeile durch das folgende behebt das Problem. Es gibt jedoch einige andere Zeilen, die ähnliche Korrekturen benötigen.

%Vor%

Beachten Sie außerdem, dass eine Pull-Anforderung aussteht, die genehmigt werden muss, um das Problem scheinbar zu beheben. Allerdings, IMHO, diese Pull-Anfrage ändert direkt die gebaute Datei aus der Bibliothek, und es wird wahrscheinlich nicht genehmigt werden.

EDIT 2:

Pull-Anforderung erstellt hier , um das Problem zu beheben, dass verschachtelte jquery.steps-Wizards .

    
leo.fcx 09.09.2015, 20:30
quelle

Tags und Links