2016-09-14 2 views
0

Ich versuche, eine JS-Datei zu starten, wenn Sie auf einen Link "link_to" in meiner Rails App klicken.Laden von JavaScript in Rails App

sichergestellt ich die die Asset-Pipeline mit

$(document).ready(function() { 
    alert("test"); 
}); 

und den Alarm Popups ohne ein Problem korrekt durch Tests funktioniert.

Allerdings wird das Skript nur geladen, wenn ich nach dem Laden der Seite aktualisieren. Ich habe den Code unten ohne Glück versucht, aber wie gesagt, es funktioniert, sobald die Seite neu geladen wird.

var ready; 
ready = function() { 

    //My JS Code 

}; 

$(document).ready(ready); 
$(document).on('page:load', ready); 

Ich habe die Turbolinks gem Datei

//= require jquery 
//= require jquery.turbolinks 
//= require jquery_ujs 
//= require bootstrap-sprockets 
//= require jquery.slimscroll 
//= require app 
//= require zopim 
//= require turbolinks 

unter Gem Datei erfüllt Ich bin sicher, es ist etwas klein ich fehle. Ich habe Beispiele mit Kaffee-Skript gesehen, aber ich weiß nicht genug darüber, um es zu dieser Zeit zu verwenden.

Edit:

Während Netzwerk unter Chrome Dev-Tools überwachen, bemerkte ich, dass keiner der JS Last, bis ich F5 drücken Sie die Seite neu zu laden, aber ich scheine nicht Probleme mit den anderen Skripten zu haben. Dies könnte ein separates Problem sein.

Antwort

0

vielleicht versuchen Sie das?

$(document).on('turbolinks:load', ready); 
+0

Sieht nicht so aus, dass dies für mich funktioniert hat. 'var bereit; ready = function() { // Mein JS-Code $ (Dokument) .ready (bereit); $ (Dokument) .on ('turbolinks: reload', bereit); ' –

+0

Sie haben 'laden' statt' laden' –

0
$(document).on('turbolinks:load', function() { 
    //My JS Code 
}) 

für Sie Dies sollte funktionieren.