2013-06-29 10 views
5

Ich glaube, dass jQuery nicht auf anderen Seiten als die, die Sie gerade installiert haben, funktioniert. Zum Beispiel, wenn ich localhost: 3000 /, im Verzeichnis '/' alle jQuery arbeitet. Aber wenn ich auf einen Link von Rails alsRails Jquery funktioniert nicht auf anderen Seiten

<%= link_to "Example Link", news_path %> 

Die Seite korrekt lädt erstellt klicken, aber die jQuery funktioniert nicht. Meine jQuery-Codes werden wie gesagt:

$(function() { 
    console.log("pageloaded"); 
    .... 
    $('.up').click(function(){ 
    ..... 
    }); 
}); 
+1

Rechtsklick auf Ihren Browser> inspizieren Element> Konsole .. Post hier Fehlermeldung. –

+0

Es gibt keine Fehlermeldung. Aber die jQuery wird nicht geladen. – Yagiz

+1

Welche Version von Rails verwenden Sie? In Rails 4 ist 'turbolinks' standardmäßig aktiviert, dh die neue Seite wird dynamisch geladen und es wird kein $ (document) .ready getriggert. Was passiert, wenn Sie localhost manuell laden: 3000/news –

Antwort

11

In Rails 4 ist turbolinks standardmäßig aktiviert. Das bedeutet, dass $(document).ready() nicht ausgeführt wird, wenn Sie eine neue Seite laden.

turbolink feuert ein neues Ereignis page:load. Damit können Sie Ihren JavaScript-Code auszuführen:

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

Es ein hervorragendes rails cast on turbolinks

+0

+1 und wenn Sie Turbo-Links deaktivieren möchten :) - http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4 – house9

+0

Eigentlich gibt es Juwel namens " jquery.turbolinks "die Seite binden: Ereignis mit jquery ready-Ereignis laden – Yagiz

0

Sie benötigen gem 'jquery-rails' in Ihrem Gemfile (installieren Sie dann bündeln, wenn Sie bundler verwenden)

Sobald das erledigt ist, müssen Sie es in Ihrem application.js-Datei benötigen:

//= require jquery 

Zuletzt müssen Sie sicherstellen, dass die Datei application.js als Teil der Anwendungsvorlage geladen wird. In application.html.erb sollten Sie die folgenden Schritte aus:

<%= javascript_include_tag "application" %> 

Ich glaube, dass dies standardmäßig in einer Rails alles, was es installieren, so, wenn Sie eine dieser Einstellungen entfernt haben Sie brauchen sie es wieder hinzufügen, um zu arbeiten .

+0

jquery rails gem ist korrekt installiert und jquery funktioniert gut auf der ersten Seite. – Yagiz

Verwandte Themen