6

我正在使用 JQuery UI Tooltip 和 AJAX 来验证表单。

我为每个字段使用一个工具提示,并且根据我的 AJAX 返回的错误更改此工具提示的内容。

为了使我的代码完整,我需要测试工具提示是否已经为此字段初始化(更改内容),如果没有(创建工具提示)。

问题是我不知道检查工具提示是否已初始化的任何有效方法。

HTML:

<input type="text" id="text1"/>
<input type="text" id="text2"/>

我尝试了以下方法,但它们都无法测试工具提示是否已经创建。

查询:

if($("#text1").tooltip() != null) //or $("#text1").tooltip() != 'undefined'
//does'nt work because .tooltip() always return an object.

if(typeof $("#text1").tooltip() != null)//or typeof $("#text1").tooltip() != 'undefined'
//does'nt work always return an object.

if($("#text1").tooltip().hasOwnProperty('option'))//or $("#text1").tooltip().hasOwnProperty('content')
//does'nt work it always return false.

如果有人可以帮助我找到一种方法来检查工具提示是否存在,那将不胜感激

谢谢!

4

4 回答 4

21

只需检查data('ui-tooltip')您的元素。参见示例:

if($element.data('ui-tooltip')) {
    $element.tooltip('destroy');
}
于 2014-05-21T14:56:16.393 回答
1

解决,我创建了一个使用我的 html 元素的 title 属性的工具提示。我没有检查是否存在工具提示来创建新工具提示或更新现有工具提示,而是更新元素的标题属性。

于 2013-09-19T18:39:41.297 回答
1

如果有人使用较新版本,则只是更新,您可以简单地检查tooltipstered类:

if (!$(this).hasClass("tooltipstered")) {
    // Init
}
于 2015-08-26T13:58:25.670 回答
1

最好使用 jquery 方法 is():

$('#timelinechecker').is(':ui-tooltip')

所以你可以使用:

if($('#timelinechecker').is(':ui-tooltip')) {
  // ... do what else...
}
于 2017-04-12T11:45:09.157 回答