测试是否初始化了JQuery工具提示

时间:2013-09-16 17:09:06

标签: jquery jquery-ui conditional-statements jquery-tooltip

我正在使用JQuery UI工具提示和AJAX来验证表单。

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

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

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

HTML:

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

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

JQUERY:

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 个答案:

答案 0 :(得分:19)

只需检查元素上的data('ui-tooltip')即可。见例:

if($element.data('ui-tooltip')) {
    $element.tooltip('destroy');
}

答案 1 :(得分:1)

如果有人使用的是新版本,只需更新,您只需检查tooltipstered类:

if (!$(this).hasClass("tooltipstered")) {
    // Init
}

答案 2 :(得分:0)

Resolve,我创建了一个使用我的html元素的title属性的工具提示。不是检查工具提示是否存在以创建新工具提示或更新现有工具提示,而是更新元素的title属性。

答案 3 :(得分:0)

最好使用jquery-method is():

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

所以你可以使用:

if($('#timelinechecker').is(':ui-tooltip')) {
  // ... do what else...
}