Готовый документ jquery 3 блокирует выполнение турболинков

Я использовал jQuery 1.12.4, и все было в порядке, у меня было что-то вроде этого:

$(document).ready ->

    console.log "document is ready yaay!"

    start = ->

        alert "Hello world!!!"

    document.addEventListener('turbolinks:load', start)

Вчера я обновился до Rails 5.1 и решил добавить и обновить также свой jQuery (да, он мне все еще нужен), поэтому я установил jQuery 3 с использованием yarn, но тот же код выше не выполняется, по крайней мере, часть turbolinks (консоль).log выполняется каждый раз, когда документ загружается, а метод "start" - нет)

Я удалил $(document).ready -> и код начинает работать как положено!!!

Чтобы убедиться, что я также удалил jQuery 3 и установил обратно jQuery 1.12, все заработало! даже с $(document).ready ->

Почему это происходит?

1 ответ

Убедитесь, что вы добавляете //= require jquery на ваш application.js файл.

В командной строке запустите yarn install jquery все строчные

Вот мой application.js файл из одного моего проекта с использованием jquery через пряжу.

//= require rails-ujs
//= require turbolinks
//= require jquery
//= require_tree .

РЕДАКТИРОВАТЬ: Если вы хотите, чтобы console.log и оповещение срабатывали при каждом изменении страницы. Вы можете написать свой JavaScript, как это.

$(document).on('turbolinks:load', function() {
  console.log('Test');
  alert("Hello world!!!");
});
Другие вопросы по тегам