2013-06-29 12 views
5

jQueryはインストールしたばかりのページ以外のページでは動作しないと思います。たとえば、localhost:3000 /と入力すると、 '/'ディレクトリにすべてのjQueryが動作します。しかし、Railsで作成されたリンクをクリックすると、Rails Jqueryが他のページで動作しない

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

ページが正しく読み込まれますが、jQueryは機能しません。述べたように私のjQueryのコードは次のとおりです。

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

あなたのブラウザを右クリック>検査要素>コンソール..ここにエラーメッセージを投稿してください。 –

+0

エラーメッセージはありません。しかし、jQueryはロードされません。 – Yagiz

+1

あなたはどのバージョンのRailsを使用していますか? Rails 4では、デフォルトで 'turbolinks'が有効になっています。つまり、新しいページが動的に読み込まれ、$(document).readyがトリガーされません。ローカルホストを手動でロードするとどうなりますか:3000/news –

答えて

11

In Rails 4 turbolinksがデフォルトで有効です。
つまり、新しいページを読み込むと、$(document).ready()は実行されません。

turbolinkは、新しいイベントpage:loadを発生させます。したがって、解決策は、負荷:優秀rails cast on turbolinks

+0

+1とターボリンクをオフにしたい場合 - http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4 – house9

+0

実際には、 jquery.turbolinks "はページをバインドします:jquery readyイベントでイベントをロードする – Yagiz

0

それが終わっています一度あなたがあなたのGemfileでgem 'jquery-rails'(あなたがバンドラを使用しているならば、インストールバンドル)

を必要とする、あなたのapplication.jsファイルでそれを必要とする必要があります。

//= require jquery 

最後に、application.jsファイルがアプリケーションテンプレートの一部としてロードされていることを確認する必要があります。 application.html.erbでは、以下が必要です。

<%= javascript_include_tag "application" %> 

私は、これはあなたがあなたはそれが仕事を得るためにそれらを再度追加する必要がありますこれらの設定を削除した場合ので、インストールRailsのではデフォルトですべてがあることを信じています。

+0

jquery rails gemが正しくインストールされ、jqueryが最初のページで正常に機能します。 – Yagiz

2

https://github.com/kossnocorp/jquery.turbolinks

この宝石はjQuery.readyのTurbolinks聞くイベントページで関数をバインドがあり

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

:あなたは、あなたのjavascriptのコードを実行するためにこれを使用することができますTurbolinks with Rails 4を使用している場合に解決されるはずです。

関連する問題