Ошибка Uncaught: нет такого метода "показать" для экземпляра виджета всплывающей подсказки

Я использую 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

3 ответов


У меня была такая же ошибка.

У меня был конфликт с jQuery UI.

Если вы используете jQuery UI, вам нужно перекодировать порядок загрузки скрипта.

мой заказ рабочей нагрузки:

  • jQuery
  • jQuery UI
  • Bootstap

на root этой и подобной проблемы

"нет такого метода "скрыть" для экземпляра виджета всплывающей подсказки"

что и 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']
    },

самым простым решением для меня было просто убрать всплывающие подсказки компоненты из дистрибутива пользовательского интерфейса jQuery I загрузить.