JQuery-Ereignisse in Rails 4 mit Turbo-Links nutzen
Rails 4-Entwickler stehen häufig vor dem Dilemma, JavaScript-Dateien zu organisieren und gleichzeitig Turbo-Links zu verwenden . Normalerweise wird das „ready“-Ereignis von jQuery verwendet, um die Ausführung von JavaScript beim Laden der Seite auszulösen. Wenn Turbo-Links aktiviert sind, wird dieses Ereignis jedoch bei nachfolgenden Seitenübergängen nicht ausgelöst.
Um dieses Problem zu beheben, ist es wichtig zu verstehen, wie Turbo-Links funktioniert. Im Gegensatz zum herkömmlichen Neuladen von Seiten ermöglicht Turbo-Links nahtlose Seitenübergänge, ohne dass die neue Seite vollständig geladen werden muss. Dadurch wird das „ready“-Ereignis von jQuery, das an den anfänglichen Ladevorgang des DOM gebunden ist, nach dem Laden der ersten Seite nicht mehr ausgelöst.
Glücklicherweise bietet Turbo-Links eine Lösung. Es sendet ein „page:load“-Ereignis, wann immer zu einer neuen Seite gewechselt wird. Dieses Ereignis kann verwendet werden, um das Verhalten des „ready“-Ereignisses von jQuery nachzuahmen und die ordnungsgemäße Ausführung von JavaScript-Code sicherzustellen.
In CoffeeScript kann dies wie folgt erreicht werden:
ready = -> # JavaScript code $(document).ready(ready) $(document).on('page:load', ready)
In Vanilla JavaScript, der entsprechende Code wäre:
var ready; ready = function() { # JavaScript code }; $(document).ready(ready); $(document).on('page:load', ready);
Bei Rails 5 und Turbolinks 5 wurde das „page:load“-Ereignis durch ersetzt „turbolinks:laden.“ In diesem Fall kann der JavaScript-Code wie folgt vereinfacht werden:
$(document).on('turbolinks:load', function() { # JavaScript code });
Durch die Verwendung dieser Techniken können Rails 4-Entwickler sicherstellen, dass jQuery-Ereignisse auch bei aktivierten Turbo-Links zuverlässig funktionieren, was einen nahtlosen und reaktionsschnellen Benutzer ermöglicht Erfahrung.
Das obige ist der detaillierte Inhalt vonWie kann ich jQuery-Ereignisse mit Rails 4 und Turbo-Links zuverlässig auslösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!