Ответ 1
У меня была та же ошибка, которая была конфликтом с jQuery UI.
Если вы используете jQuery UI, вам нужно изменить порядок загрузки скриптов.
Мой порядок рабочей нагрузки:
- JQuery
- JQuery UI
- начальная загрузка
Я использую ajax для отправки формы для моей регистрации, но у меня проблема с настройкой всплывающих подсказок, чтобы отображать сообщения об ошибках для ошибок, возвращаемых с контроллера.
JavaScript:
$(document).on('ajax:success', '.user_modal_form', function(e, data, status, xhr) {
var context;
context = $(this);
if (data.success) {
$('button', context).hide();
$('.spinner', context).show();
location.reload();
} else {
if (data.errors != null) {
$.each(data.errors, function(key, error) {
var field;
field = $("#athlete_" + key);
field.attr('data-original-title', "" + key + " " + error).tooltip({
trigger: 'manual'
}).tooltip("show");
});
}
}
});
Сообщение об ошибке: Uncaught Error: no such method 'show' for tooltip widget instance
У меня была та же ошибка, которая была конфликтом с jQuery UI.
Если вы используете jQuery UI, вам нужно изменить порядок загрузки скриптов.
Мой порядок рабочей нагрузки:
root этой и аналогичной проблемы
"нет такого метода 'hide' для экземпляра виджета всплывающей подсказки
что и JqueryUI, и Boostrap имеют подсказку,
JqueryUI работает как:
$el.tooltip("option","show");
$el.tooltip("option","hide");
Boostrap работает как:
$el.tooltip("show");
$el.tooltip("hide");
Итак, поскольку Богдан Льюис показал, что вам нужно изменить порядок своих сценариев, например, с помощью requirejs, вам нужно загрузить Boostrap после JqueryUI
var $ = require('jquery');
require('jquery_ui');
require('bootstrap');
и настройте config для requirejs, например:
bootstrap: {
deps: ['jquery', 'jquery_ui']
},
Самое простое решение для меня было просто удалить компоненты всплывающих подсказок из дистрибутива UI jQuery я скачано.