当工具提示处于活动/聚焦状态并destroy
调用事件时,工具提示的不透明度为 0,但仍可点击且其元素仍在 DOM 中。
此演示中重现了该问题:单击测试按钮时,工具提示被“销毁”,但它仍在 DOM 中并阻止文本输入上的单击事件。
这是正常行为吗?任何干净的解决方法?
UPD:似乎是一个已知问题
如果你使用disable
而不是destroy
呢?
是的,有一个解决方法。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.
请记住,即使您禁用该元素,它仍然会保存元素中的数据,并且在引导程序中引用该元素,以便以后使用,这是不必要的