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.
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.
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:
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% 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
Tags und Links javascript jquery-mobile