конфликт JQuery на Rails - PullRequest
       8

конфликт JQuery на Rails

0 голосов
/ 01 февраля 2019

Мой application.js:

//= require rails-ujs
//= require jquery
//= require activestorage
//= require turbolinks
//= require bootstrap-sprockets
//= require flatpickr.min
//= require_tree .

Мой Gemfile:

gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'bootstrap-sass'
gem 'jquery-rails'

Если я просто оставлю свое приложение таким образом, все мои jQuery будут работать нормально.Но мне также нужно

<head>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js"</script>
</head>

на моем application.html.erb, так как я использую Bootstrap 4.

Так что в этой конфигурации у меня много проблем с моим jQuery, например

$ (...). Flatpickr не является функцией

Есть ли способ избежать этих конфликтов?Я полагаю, это потому, что я включаю несколько jQueries в свое приложение.

Если я удалю //= require jquery, все jQuery, связанные с Bootstrap, будут работать, но мои пользовательские сценарии не будут.
Если я удалю <script src="https://code.jquery.com/jquery-3.3.1.min.js"</script>, мои сценарии будут работать, но не все, связанные с Bootstrap (как гамбургер navbar или аналогичные).

1 Ответ

0 голосов
/ 10 февраля 2019

Вот шаги для добавления начальной загрузки 4 в ваше приложение rails 5 Вот ссылки на rubygems и github страниц.

Шаг 1: Добавьте начальную загрузку иjquery-rails к вашему Gemfile (убедитесь, что sprockets-rails по крайней мере v2.3.2)

gem 'bootstrap', '~> 4.2.1'
gem 'jquery-rails'

Шаг 2: Добавьте зависимости Bootstrap и Bootstrap в ваше приложение. js

//= require jquery3
//= require popper
//= require bootstrap

Вам не нужно указывать cdn jquery для ваших представлений, который является функцией строки // = require jquery3.И удалите свою зависимость bootstrap-sass, которая предназначена для bootstrap 3

Примечание: Важно отметить, что вам требуется jquery3 с // = require jquery3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...