4 Stimmen

Ratschen Push.js drückt nicht

Ich habe eine PHP-App auf Basis von CodeIgniter erstellt, die funktioniert, indem sie von einem Controller zum anderen (.php-Dateien) wechselt, anstatt von einer statischen Seite zur nächsten (.html-Dateien).

Problem: Die Links weigern sich zu funktionieren.

Ich bin mir nicht sicher, ob dies überhaupt das Problem ist, aber ich habe die Dokumentation durchgesehen und es scheint die einzige Ausnahme im Vergleich zum Quellcode zu sein - ich rufe eine .php-Datei auf anstelle einer .html-Datei.

Bevor Sie fragen - auf meinem System ist booknav ein gültiger Controller, der beim Klicken eine gültige Ansicht lädt.

Außerdem - ich sehe, dass der Codeausschnitt hier tatsächlich funktioniert. Ich versuche diesen Fehler zu debuggen - warum sendet der Codeausschnitt hier einen Link, während das Äquivalent auf meinem Server das nicht tut?

Hier ist meine endgültige HTML-Datei:

  Projekt

    Wählen Sie Ihr Buch aus

             Buch 1

             Buch 2

             Buch 3

5voto

kindasimple Punkte 2407

Wenn Sie auf den Link klicken und der Browser zu http://yourwebserver/projectroot/booknav navigiert anstatt den Seiteninhalt mit einer Übergangsanimation auszutauschen, liegt es daran, dass Sie kein Gerät in Ihrem Browser emulieren. push.js wird nicht ausgelöst, weil das touchend-Ereignis nicht ausgelöst wird. Verwenden Sie die Chrome Developer Tools oder installieren Sie Ripple.

Ratchet fügt einen Handler für Berührungsereignisse des Fensters hinzu, unterbricht die Navigation, lädt die gesamte Zielseite separat vom DOM und tauscht dann die neuen Inhalte mit den Inhaltscontainern im DOM aus.

Einige allgemeine Anforderungen für die Ausführung von ratchet.js

1) Die App muss auf einem Webserver getestet oder auf ein Gerät bereitgestellt werden.
2) Sie müssen einen Emulator verwenden, um die Touch-Ereignisse auszulösen (oder auf einem Gerät ausführen)
3) Der Seiteninhalt muss gut formatiert sein. Er sollte auf jeder Seite passende Kopf-, Fuß-, Navigations- und Inhalts-Elemente haben. Es sollten keine fehlenden data-transition-Tags auf Ihren Links vorhanden sein.

Sie können Touch-Ereignisse in Chrome auslösen, indem Sie die Developer Tools aktivieren und die Geräteemulation aktivieren, oder mit einer Bibliothek wie dem hammer.js Touch-Emulator. Wenn Sie einen Klick auslösen, umgehen Sie push.js und der Browser wird navigieren, was nicht das ist, was Sie wollen.

Wenn der Inhalt nicht gut formatiert ist, wird der Browser die Seite neu laden, unabhängig von dem aktuellen Standort, was nicht das ist, was Sie wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X