Rails 4 Turbo-Link verhindert, dass jQuery-Skripte funktionieren

Baue ich eine Rails-4-app und ich habe ein paar verstreute js-Dateien, die ich versuche zu zählen "the rails way". Ich zog jquery-plugins in den /vendor/assets/javascripts und ich aktualisiert die manifest - (application.js) , die Sie benötigen. Wenn ich das laden der Seiten lokal sehe ich, dass Sie korrekt angezeigt.

Aber ich bin immer inkonsistente Verhalten von einem der Skripte, zusammengestellt. Ich habe ein controller-spezifisches js-Datei aufgerufen projects.js verwiesen wird in der application.js über die Verwendung von require_tree .:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min
//= require jquery.form.min
//= require_tree .

Sehe ich die Datei richtig, und es funktioniert... die Hälfte der Zeit. Die andere Hälfte der Zeit, die in Sachen projects.js scheint nicht, etwas zu tun (meist sind es jquery-Animationen und einige ajax-requests). Wenn es nicht funktioniert, werde ich klicken Sie auf die Tasten ein paar mal, wird nichts passieren, und dann werfe ich diese Fehlermeldung:

Uncaught TypeError: Cannot read property 'position' of null 
turbolinks.js?body=1:75

Das nie passiert, wenn die Skripte wurden in den einzelnen Ansichten (der falsche Weg), so bin ich ziemlich sicher, dass das problem nicht mit meinem javascript-code. Eine weitere potenziell relevante details ist, dass die Sachen in projects.js verpackt in einem $(document).ready(function(){. Auch bin ich mir Tests in der Entwicklung Modus, so dass die javascripts und css nicht in Verbindung mit dem asset-pipeline.

Irgendeine Idee, was hier Los ist? Ich bin neu auf Schienen, aber ich habe mein bestes getan, zu Folgen, alle Konventionen.

Update!

Vorhersagbar wenn mein Projekt Scripte nicht funktionieren. Die erste Seite geladen werden, funktioniert jedes mal. Dann klicke ich einen link auf eine neue Seite, welche verwendet meine project.js Verhaltensweisen und den zweiten Seite nie funktioniert. Ich klicke ein paar mal und irgendwann werfen Sie den oben genannten Fehler. Ich bin noch nicht sicher, warum, aber ich bin zu Ahnen, dies ist im Zusammenhang mit turbo-Verknüpfung.

InformationsquelleAutor der Frage emersonthis | 2013-09-12

Schreibe einen Kommentar