【问题标题】: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.

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 小代码糖果 $el.filter(":hasData('ui-tooltip')").tooltip("destroy") stackoverflow.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...
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-29
          • 2017-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-14
          • 1970-01-01
          相关资源
          最近更新 更多