Ich arbeite an einer für Mobilgeräte geeigneten Website mit jQuery Mobile, möchte aber mehrere HTML-Dateien mit jeweils einer Datenrolle verwenden: "page" div (anstelle mehrerer Daten) role = "page" divs in einer Datei, wie es der Standard zu sein scheint, da dies die maximale Wiederverwendung der vorhandenen Site ermöglicht. Ich kenne das ganze data-ajax = "false" -Konzept, das ich auf den <a>
Tags der Hauptseite verwenden könnte, aber das deaktiviert die Seitenübergangseffekte, die wir wirklich mögen.jQuery Mobile Website mit mehreren Dateien
Ich habe versucht, pageshow, pagebeforeshow, paginein, document.ready, etc., aber keiner von denen wird immer ausgelöst, wenn ich direkt auf diese Seite gehe, im Gegensatz zu einem Link von der Hauptseite, dh das Inhaltsverzeichnis (oder Aktualisieren die Seite nach dem Folgen eines Links aus dem Inhaltsverzeichnis). Also im Grunde meine JS-Datei wie folgt aussieht:
('div[data-role="page"]:first').live('pageshow',function(){ /*do custom stuff here */})
Ich habe auch versucht, das Hinzufügen der Verweis auf diese JS auf die TOC-Seite Datei aber kein Glück ..., das ich irgendwie erwartet, aber ich dachte, ich würde versuchen, . Es fällt mir schwer zu glauben, dass JQM einfach nicht die Seite so unterstützt (ohne die Übergangseffekte zu verlieren), also vermisse ich wahrscheinlich etwas Einfaches.
Welche Version von Jquery und Jquery Mobile verwenden Sie? – codaniel
Es traf mich bald, als ich meine Frage direkt nach der Einreichung erneut las, dann probierte ich es aus und bestätigte meinen Verdacht ... das Problem war mit meinem Selektor ... div [data-role = "page"]: zuerst wählt das erste Seiten-Div der TOC-Seite aus, wenn ich einem Link vom Inhaltsverzeichnis folge. Also fing ich an IDs auf meinen Divs zu verwenden ... was ich sowieso die ganze Zeit gemacht hätte ... und es fing an zu arbeiten! – user1263226
Nun, ich bin froh, dass du es herausgefunden hast. Jaspers Antwort ist eine wichtige Sache, die man sich ansehen sollte. Es gibt einige bekannte Probleme mit Live. Auch IDs funktionieren viel besser. Wenn Sie Jquery 1.7.x verwenden, verwenden Sie die Methode .on() anstelle von Live. – codaniel