2013-06-29 5 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

В Rails 4 turbolinks активен по умолчанию.
Это означает, что $(document).ready() не выполняется, когда вы загружаете новую страницу.

turbolink возбуждает новое событие page:load. Вы можете использовать это, чтобы запустить свой яваскрипт кода:

$(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 ready – Yagiz

0

Вы должны gem 'jquery-rails' в вашем Gemfile (то Bundle установить, если вы используете Bundler)

Как только это сделано, вы должны требовать его в файле 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 слушают страницы событий: нагрузки, поэтому решение должен быть решен, если вы используете Turbolinks с Rails 4

Смежные вопросы