jQuery工具 - >工具提示破坏方法?

时间:2011-02-02 21:19:19

标签: javascript jquery jquery-tools tooltip destroy

除了jQuery UI日历之外,我还在表中使用Flowplayer的jQuery Tools框架(特别是工具提示插件)。

表格的每一行都可以在其上方和下方插入一行。

执行此操作时,我将克隆单击的对象(事件和对象)并将其直接插入到上方或下方。

添加新行后,我刷新表格,为我的元素生成新的id,重新初始化datepicker,并尝试重新初始化工具提示。

我正在寻找一种方法从实例中完全销毁它并重新应用它。

我正在寻找与datepicker('destroy')方法类似的东西。

$j($editRow).find('input.date').datepicker('destroy').datepicker({dateFormat: 'mm-dd-yy', defaultDate : defaultDateStr});

我已经尝试过:

  1. 取消绑定鼠标悬停和焦点事件:重新调用工具提示时,它会自动转到制作它的对象。

  2. 隐藏工具提示DOM元素,从目标中删除工具提示对象,然后重新应用它。同样的事情发生在(1)

  3. 我可以自己创建一个destroy方法吗?

5 个答案:

答案 0 :(得分:5)

我尝试了kwicher的方法,但无法让它发挥作用。虽然我试图改变缩小的代码,但我并不完全确定我找到了做出改变的合适位置。

然而,我确实让它发挥作用。 ValidationFailed是我应用于所有输入字段的类,这些字段也有应用工具提示。

$('.validationFailed').each(function (index) {
    $(this).removeData('tooltip');
});

$('.tooltip').remove();

我尝试了几种不同的方式,这是唯一允许我在删除后添加其他工具提示的组合,而不会阻止新的工具提示正常工作。

我可以说,工具提示类删除处理摆脱实际的工具提示div,其事件也直接连接。 .removeData允许将来重新绑定工具提示。

答案 1 :(得分:5)

基于你的想法和汤姆的回答,我发现有三件事是必要的:

  1. 从工具提示目标元素
  2. 中删除“工具提示”数据
  3. 取消绑定工具提示目标元素中的事件侦听器
  4. 删除元素(假设您正在使用此工具提示方法以允许在您的提示中使用任意HTML)
  5. 所以,这个简单的功能应该可以解决问题。只需传递一个jQuery对象,其中包含您要销毁的工具提示的目标元素。

    function destroyTooltips($targets) { 
        $targets.removeData('tooltip').unbind().next('div.tooltip').remove();
    }
    

答案 2 :(得分:1)

如果您仍然需要它,您可以执行以下操作: - 在工具提示实现文件中添加以下函数

destroy: function(e) {
        tip.detach();
        }

某处:

$.extend(self, {
...

我有最后一个原生函数。

然后当你想要删除小费时,请点击:

$(.tip).data('tooltip').destroy();

它应该做的伎俩

ķ

答案 3 :(得分:0)

   if($element.data('ui-tooltip')) {//if tooltip has been initialized
       $element.tooltip('destroy');
   }

答案 4 :(得分:-1)

也许为时已晚...... ;-)
但在这里你可以找到'工具提示'的所有方法:http://www.w3schools.com/bootstrap/bootstrap_ref_js_tooltip.asp

我留下了一个可以路过的人,也有同样的问题:处理不同的'工具提示'动作/ objs。