jQuery Mobile 1.4.5 - Fehler beim Navigieren zur dynamisch erstellten Seite

8

Ich habe meinen Kopf für ein paar Stunden gegen eine Wand geschlagen, und kann immer noch nicht scheinen, dass dies funktioniert.

Ich mache eine Webanwendung mit einer mehrseitigen Vorlage (mit mehreren Seiten in meinem index.html .

Ziel: Erstellen Sie dynamisch eine neue Seite und zeigen Sie dann diese Seite auf dem Bildschirm an.

Problem: Nach dem Erstellen der Seite und dem Versuch, zu dieser Seite zu wechseln, erhalte ich den folgenden Fehler: Error: Syntax error, unrecognized expression: :nth-child in jquery.mobile-1.4.5.js:1850:8

Der entsprechende Code kann unten gefunden werden:

JavaScript

%Vor%

HTML

Die Seite wurde erstellt und zum <body> hinzugefügt, daher werde ich den HTML-Teil weglassen.

Ich denke, dass die Seite nicht im Pagecontainer registriert ist, was zu einem Fehler führt? Ich habe gesucht, aber es scheint keine pagecontainer Refresh-Methode zu sein.

Irgendwelche Ideen, wie Sie das beheben können?

Bearbeiten 1:

Mit dem erwähnten Code kann man auf eine andere Seite navigieren, zum Beispiel funktioniert die Homepage gut. Die einzige Seite, die nicht funktioniert, ist die neu erstellte Seite.

Bearbeiten 2:

Es scheint, dass die Seite, die ich erstelle, den Fehler erzeugt. Der Code, mit dem auf die Seite navigiert wurde, funktionierte einwandfrei.

Der Code, den ich zum Erstellen der Seite verwende:

%Vor%

Der obige Code erzeugt den Fehler.

    
JiFus 06.07.2017, 14:31
quelle

1 Antwort

2

Ich glaube, dass dieses Problem geklärt werden muss:

  • Dies ist kein jQuery -Fehler, dies ist ein jQuery Mobile -Fehler. Das Fehlermeldung in der Frage ist falsch, weil die jquery.mobile.js Bibliothek wurde in jquery.js umbenannt.

    Unter Verwendung des Standards jquery.mobile-1.4.5.min.js die Fehlermeldung ist:

      

    Uncaught Error: Syntaxfehler,   unerkannter Ausdruck:: nth-child bei jquery.mobile-1.4.5.min.js: 3

    Beachten Sie jedoch, dass die Zeilennummer variieren kann, wenn ein benutzerdefinierter Download verwendet wird oder wenn die Debug-Version verwendet wird.

  • Betroffenes Widget: Navbar
  • Dieser Fehler hat weniger mit der dynamischen Seitenerstellung zu tun, als er entsteht auch in einer statischen Seite. Dies kann leicht mit getestet werden folgendes Markup:

    %Vor%
  • Lösung: Mindestens ein <li> muss innerhalb der Navbar <ul> sein.

Da diese Frage viele Upvotes erhalten hat, hier sind meine zwei Cents über die dynamische Erstellung eines HTML-Stücks mit JQM:
  1. Entwerfen und testen Sie das endgültige resultierende HTML-Snippet mithilfe eines JQM static Seite , in Plunker .
  2. Wenn die statische Vorlage funktioniert , fügen Sie die HTML-Teile zusammen. Ich würde mag eine einfache Textverkettung, aber das ist nur eine Frage von persönlichem Programmierstil und Vorliebe (nimm das auch nicht ernst) - zumindest, wenn Sie mit einer großen Vorlage zu tun haben, ist die Tag-Verschachtelung sofort klar.

    %Vor%
  3. Verwenden Sie am Ende append() nur einmal.

Wenn jemand interessiert ist, wäre es schön, ein Feedback über die Leistung der verschiedenen Methoden zur Erstellung von HTML-Templates / -Fragmenten zu erhalten.

Eine Anmerkung zur Seite:

Die Frage im Titel dieses Beitrags wurde bereits von Omar schon vor langer Zeit beantwortet:   jquery mobile dynamisch injizierende Seiten

    
deblocker 16.07.2017, 07:46
quelle

Tags und Links