2016-05-06 2 views
1

Ich beginne mit Ajax, jQuery und all das, sorry, wenn ich hier dumme Fehler mache. Ich baue eine Website mit PHP/JS, und mit Googles Material Design Verhaltungen und CSS: https://getmdl.io/components/MaterialDesign, JS Verhalten verloren, wenn durch Ajax geladen

Meine Seiten auf diese Weise gebaut: - index.php, die die Haupt Seite ist (mit Links zu CSS, js files, etc ...) - das enthält ein div, wo andere php "modules" (verschiedene php-dateien, die nur einige benötigte teile enthalten) geladen sind.

Mein Problem ist, dass in diesen geladenen Seiten jedes "spezielle" Verhalten der Material Design-Klassen vollständig verloren ist ..). Die CSS-Stile sind gut (Material Design Farben angezeigt werden, funktioniert visuell gut), aber nicht das Verhalten beim Anklicken usw.

Irgendeine Idee, wie ich das beheben könnte? Vielen Dank!

Antwort

3

Gefunden die Lösung nach dem Tauchen in jQuery githubs Probleme Berichte. Scheint, dass die Komponenten nicht aktualisiert werden, wenn sie über AJAX geladen werden.

Der folgende Aufruf hat in den Seiten durch AJAX geladen hinzugefügt werden:

componentHandler.upgradeDom(); 

Entweder durch einen Funktionsaufruf oder ajaxComplete einem Hörer, zum Beispiel:

$('body').ajaxComplete(function() { 
     componentHandler.upgradeDom(); 
}); 
+0

Für den Gewinn! Genau das, was ich gesucht habe. Ich nahm ein paar Stunden um das herauszufinden. Ich benutze jQuery überhaupt nicht, aber das hat für mich funktioniert. Seiten, die über AJAX geladen wurden, bekamen nicht die volle Material Lite-Behandlung, ich vermutete, dass es so etwas war. – MarsAndBack

Verwandte Themen