Готовый документ 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!!!");
});