未捕获的错误:没有这样的方法“显示”工具提示小部件实例

我正在使用ajax来提交我的registry单,但有一个问题,试图设置工具提示来显示从控制器返回的错误的错误消息。

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,那么您需要重新编写您的脚本加载顺序。

我的工作负载顺序:

  • jQuery的
  • jQuery UI
  • Bootstap

这个和类似的问题的根源

“没有这样的方法”隐藏“工具提示小部件实例”

JqueryUI和Boostrap都有工具提示方法,

JqueryUI的工作原理是:

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

Boostrap的工作原理如下:

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

所以,如Bogdan Lewis所示,您需要重新sorting您的脚本,例如requirejs ,您需要使BoostrapJqueryUI之后加载

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

并调整requirejs的configuration ,如:

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

对我来说最简单的解决scheme就是从我下载的jQuery UI分发中删除工具提示组件。