4

当工具提示处于活动/聚焦状态并destroy调用事件时,工具提示的不透明度为 0,但仍可点击且其元素仍在 DOM 中。

此演示中重现了该问题:单击测试按钮时,工具提示被“销毁”,但它仍在 DOM 中并阻止文本输入上的单击事件。

这是正常行为吗?任何干净的解决方法?

UPD:似乎是一个已知问题

4

2 回答 2

6

如果你使用disable而不是destroy呢?

小提琴

于 2013-10-10T17:55:36.133 回答
5

是的,有一个解决方法。data-toggle="tooltip"从您的标记中删除。这就是导致工具提示再次显示的原因。因为您仍然在引导程序侦听的工具提示上具有数据属性。你在 js 中的构造函数就足够了,data-*不需要在 JS 中同时放置 for tooltip 和 tooltip 构造函数。

 <input id="testBtn" class="btn btn-default" type="button" value="Test"  title="Test Destroy Event"/>

演示

更新

这是旧版本的 Bootstrap 中的一个错误,因此要在旧版本中修复它,您可以通过从 Data 中获取 $tip 元素来删除它。

        var $this = $(this);
        $this.data('bs.tooltip').$tip.remove(); //remove the tip element.
        $this.tooltip('destroy'); //destroy it now.

演示

请记住,即使您禁用该元素,它仍然会保存元素中的数据,并且在引导程序中引用该元素,以便以后使用,这是不必要的

于 2013-10-10T17:58:17.453 回答