未捕获的错误:没有这样的方法“显示”工具提示小部件实例
我正在使用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 ,您需要使Boostrap在JqueryUI之后加载
var $ = require('jquery'); require('jquery_ui'); require('bootstrap');
并调整requirejs的configuration ,如:
bootstrap: { deps: ['jquery', 'jquery_ui'] },
对我来说最简单的解决scheme就是从我下载的jQuery UI分发中删除工具提示组件。