2013-06-29 41 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。如果您手動加載localhost,會發生什麼情況:3000/news –

回答

11

In Rails 4 turbolinks默認爲激活狀態。
這意味着,當您加載新頁面時,$(document).ready()未執行。

turbolink發生新事件page:load。你可以用它來運行JavaScript代碼:

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

有一個外觀極好rails cast on turbolinks

+0

+1,如果你想打開渦輪鏈接:) - http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4 – house9

+0

其實,有寶石叫「 jquery.turbolinks「綁定頁面:加載事件與jQuery的就緒事件 – 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

相關問題