Конфликт Bootstrap и jQueryUI

Я пытаюсь использовать tooltip в представлении, которое имеет ссылку на оба jQueryUI и Bootstrap 3. Я сделал образец здесь. Если я загружу Boostrap после js jQueryUI, то tooltip() вызов успешен, но если я вызываю jQueryUI после начальной загрузки, я получаю ошибку, и ничего не работает. Вы можете попробовать сами. Об этом много говорят в интернете, и я спросил вокруг GitHub, но я еще не мог найти решение.

2 ответов


идеальным решением будет взять QueryUI без подсказки. Это сработает. Если вы не хотите этого делать, включите Bootstrap после JQueryUI. Убедитесь, что у вас есть уникальные компоненты из каждого (вы можете создать обе библиотеки с требуемыми компонентами)

Bootstrap имеет способ сбросить любой компонент, например:

var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the Bootstrap functionality

приведенный выше код будет работать при загрузке bootstrap после jQueryUI

Ref: http://getbootstrap.com/javascript/

вот соответствующий код из Bootstrap:

  var old = $.fn.tooltip

  $.fn.tooltip = function (option) {
    ....
  }


  $.fn.tooltip.noConflict = function () {
    $.fn.tooltip = old
    return this
  }

вместо jquery-ui.js, включите отдельные библиотеки по мере необходимости и оставьте подсказку jQuery-ui.

например, если все, что вам нужно, это сортировка jQuery-ui, используйте это:

<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/jquery-ui/ui/core.js"></script>
<script src="bower_components/jquery-ui/ui/widget.js"></script>
<script src="bower_components/jquery-ui/ui/mouse.js"></script>
<script src="bower_components/jquery-ui/ui/sortable.js"></script>