2

ПРОБЛЕМАПочему javascript перестает работать при сбросе фильтра или изменении страницы?

Javascript моего веб-приложения, построенного в Ruby-2.3.3, Rails 4.2.7.1 перестал работать, когда я сбросить фильтры Filterrific 2.1.2 или изменения страницы с нумерацией страниц, предоставленной Will_paginate 3.1.5 и Will_paginate-bootstrap 1.0.1.

Я заметил, что когда Turbolinks 5.0.1 отключен, проблема исчезла.

JAVASCRIPT ПРИМЕР

bootstrap-datepicker-rails 1.6.4.1 остановка работы после того, как фильтры сбрасываются. Также любой код, включенный в файл application.js.

$(function() { 
    $('.input-daterange').datepicker({ 
     format: "yyyy-mm-dd", 
     language: "pt-BR", 
     autoclose: true 
    }); 
}); 

ВОПРОС

Каждый имеет решение, которое не предполагает отключение Turbolinks? Я также попробовал gem jquery-turbolinks и не получил никаких результатов.

ответ

1

Похоже, что вы инициализируете свою логику интерфейса $(document).ready, но при использовании Turbolinks вам нужно сделать это в $(document).on('turbolinks:load').

Для более глубокого знания взглянуть на Building your turbolinks application раздел официальной документации

+0

Работает отлично! Поскольку приложение rails по умолчанию поставляется с камнем turbolinks, я никогда не читаю документацию. И это вот-вот изменится. Благодарю. – fmmatheus

+1

@fmmatheus чувствую, что я должен упомянуть - если вы в примере будете использовать библиотеки js, такие как select2, которые создают дополнительные элементы и сохраняют свое состояние в jquery-данных, которое мигает при изменении страницы, вы можете заметить странное поведение при использовании кнопки возврата. В этом случае - уничтожить эти компоненты в событии 'turbolinks: unload'. –

+0

Великий совет @aleksandr, я сделаю это. – fmmatheus