В зависимости от версии turbolinks вам необходимо использовать правильный синтаксис для переопределения события загрузки документа. Для turbolinks 5:
вместо
$(document). ready(function() {
....
})
Использование
var documentready = function(){
}
$(document). on('turbolinks:load', documentready);
Это грациозно вернется к документу готовое событие при обновлении.
Зачем это необходимо?
Turbolinks связывает изменения местоположения (например, ссылки на ссылки) и использует Ajax для загрузки частичного. Документ НЕ ЗАГРУЖЕН. Кроме того, он управляет историей браузера для записи посещения.
Таким образом, активы не загружаются при каждом посещении. Быстро. Поэтому готовый документ не будет привязываться ко всем событиям, если только все слушатели не нацелены под телом или документом (например, $("body").on("click","selector",function()...
вместо $("selector").on('click', function()...
Поделитесь соответствующими битами кода, пожалуйста? – Timo
Вы используете 'turbolinks'? –
Да, я. Вот почему? – nachime