Rails 4 Turbo-Link не позволяет скриптам JQuery работать

я создаю приложение Rails 4, и у меня есть несколько разбросанных js-файлов, которые яя пытаюсь включитьрельсовый путь ", Я переместил плагины jquery в / vendor / assets / javascripts и обновил манифест (application.js), чтобы потребовать их. Когда я загружаю страницы локально, я вижу, что они отображаются правильно.

Однако я'я получаю противоречивое поведение от одного из сценариев, которыескомпилировано. У меня есть js-файл для конкретного контроллера с именем projects.js, на который есть ссылка в application.js с помощью:require_tree .

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min
//= require jquery.form.min
//= require_tree .

Я вижу, что файл включен правильно, и он работает ... половину времени. Другая половина времени, вещи в projects.js некажется, ничего не делает (этов основном анимация jquery и некоторые запросы ajax). Когда это нея не работаюЯ пару раз нажму на кнопки, ничего не произойдет, а потом явыкину эту ошибку:

Uncaught TypeError: Cannot read property 'position' of null 
turbolinks.js?body=1:75

Это никогда не происходило, когда сценарии были в отдельных представлениях (неправильный путь), поэтому яЯ уверен, что проблема не в моем коде JavaScript. Еще одна потенциально важная деталь заключается в том, что содержимое файла projects.js обернуто в$(document).ready(function(){, Также я'm тестирование в режиме разработки, поэтому javascripts и css не объединяются конвейером ресурсов.

Любая идея, чтоздесь происходит? Я'я новичок в Rails, но ямы сделали все возможное, чтобы следовать всем соглашениям.

Обновить!

Это'предсказуемыйкогда сценарии моего проекта нет работа. Первая загрузка страницы работает каждый раз. Затем я нажимаю одну ссылку на новую страницу, которая использует мое поведение project.js ивторой страница никогда не работает. Я нажимаю несколько раз и в итоге выкидываю ошибку выше. Я'Я до сих пор не знаю, почему, но яЯ подозреваю, что это связано с турбо-связью.

Ответы на вопрос(3)

Ваш ответ на вопрос