web-dev-qa-db-fra.com

Erreur non détectée: aucune méthode de ce type ne s'affiche pour l'instance de widget info-bulle

J'utilise ajax pour soumettre un formulaire pour mon inscription, mais j'ai un problème en essayant de configurer des info-bulles pour afficher des messages d'erreur pour les erreurs qui reviennent du contrôleur.

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");
      });
    }
  }
});

Message d'erreur: Uncaught Error: no such method 'show' for tooltip widget instance

42
dennismonsewicz

J'ai eu la même erreur, qui était en conflit avec l'interface utilisateur jQuery.

Si vous utilisez l'interface utilisateur jQuery, vous devez réorganiser votre ordre de chargement de script.

Mon ordre de charge de travail:

  • jQuery
  • jQuery UI
  • Bootstrap
142
Bogdan Lewis

Le root de ce problème et similaire

"aucune méthode de ce type" masquer "pour l'instance de widget info-bulle"

que JqueryUI et Boostrap ont la méthode info-bulle,

JqueryUI fonctionne comme:

$el.tooltip("option","show");
$el.tooltip("option","hide");

Boostrap fonctionne comme:

$el.tooltip("show");
$el.tooltip("hide");

Donc, comme Bogdan Lewis a montré que vous devez réorganiser vos scripts, par exemple avec requirejs, vous devez faire Boostrap être chargé après JqueryUI

var $ = require('jquery');
require('jquery_ui');
require('bootstrap');

et ajustez config pour requirejs comme:

    bootstrap: {
        deps: ['jquery', 'jquery_ui']
    },
4
pymen

La solution la plus simple pour moi était simplement de supprimer les composants des info-bulles de la distribution jQuery UI I téléchargé .

1
theV0ID