测试 JQuery 工具提示是不是已初始化
Posted
技术标签:
【中文标题】测试 JQuery 工具提示是不是已初始化【英文标题】:Testing if JQuery tooltip is initialized测试 JQuery 工具提示是否已初始化 【发布时间】:2013-09-20 22:23:34 【问题描述】:我正在使用 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.
如果有人可以帮助我找到一种方法来检查工具提示是否存在,那将不胜感激
谢谢!
【问题讨论】:
【参考方案1】:解决,我创建了一个使用我的 html 元素的 title 属性的工具提示。我没有检查是否存在工具提示来创建新工具提示或更新现有工具提示,而是更新元素的标题属性。
【讨论】:
【参考方案2】:只需检查您的元素上的data('ui-tooltip')
。见例子:
if($element.data('ui-tooltip'))
$element.tooltip('destroy');
【讨论】:
小代码糖果 $el.filter(":hasData('ui-tooltip')").tooltip("destroy") ***.com/a/41061135/863651【参考方案3】:如果有人使用较新版本,只需更新,您只需检查 tooltipstered
类:
if (!$(this).hasClass("tooltipstered"))
// Init
【讨论】:
【参考方案4】:最好使用jquery方法is():
$('#timelinechecker').is(':ui-tooltip')
所以你可以使用:
if($('#timelinechecker').is(':ui-tooltip'))
// ... do what else...
【讨论】:
以上是关于测试 JQuery 工具提示是不是已初始化的主要内容,如果未能解决你的问题,请参考以下文章