消灭A Div中的所有Bootstrap工具提示

我有一个$("#settings") div,其中包含多个附加到子元素的引导工具提示。

例如,

 
Content:
Content
Content:
Content

我想做$("#settings").tooltip('destroy')在按下按钮时摆脱所有这些工具提示,但它不起作用,我假设因为工具提示实际上不在设置div,但在里面。

但是我也尝试了$('#settings').find('*').tooltip('destroy') ,但也没用。

是因为我如何初始化它们?

 $(document).ready(function() { $("body").tooltip({ selector: '[data-toggle=tooltip]' }); }); 

什么是访问div中所有工具提示的快速简便方法?

您使用元素容器(正文)通过委托 ( 小提琴 )初始化了具有data-toggle="tooltip"属性的所有元素:

 $("body").tooltip({ selector: '[data-toggle=tooltip]' }); 

所以为了使用destroy来禁用它你需要在身体上执行:

 $('body').tooltip('dispose'); 

如果你想在没有委托的情况下这样做,你可以初始化每个元素( 小提琴 ):

  $('[data-toggle="tooltip"]').tooltip(); 

并摧毁它:

 $('[data-toggle="tooltip"]').tooltip('dispose'); // used in v4 $('[data-toggle="tooltip"]').tooltip('destroy'); // used in v3 and older 

如果您仍想初始化通过委派并使用disable ( 小提琴 )阻止它工作:

 $('body').tooltip({ selector: '[data-toggle=tooltip]' }); $('body [data-toggle="tooltip"]').tooltip('disable'); 

从Jasny的回答中解释出销毁和禁用之间的区别:

 $('[rel=tooltip]').tooltip() // Init tooltips $('[rel=tooltip]').tooltip('disable') // Disable tooltips $('[rel=tooltip]').tooltip('enable') // (Re-)enable tooltips $('[rel=tooltip]').tooltip('dispose') // Hide and destroy tooltips 

这是我在Bootstraps github中得到的答案 – 因为你正在使用委托(即选择器选项),我相信只有一个实际的工具提示实例(在主体上)。 因此,尝试在触发元素本身上销毁不存在的工具提示实例没有任何效果。 比较非委托版本: http : //jsfiddle.net/zsb9h3g5/1/

从bootstrap版本4开始,根据文档,您应该使用dispose,因为不再定义destroy 。 示例如下:

 $('#element').tooltip('dispose') 

选择的答案会破坏工具提示,因此它们会完全消失并且其function被禁用。

如果您只想在保持其function的同时立即删除所有工具提示,请使用$('.tooltip').remove();

要仅销毁#settings工具提示,请执行以下操作:

 $('#settings [data-toggle="tooltip"]').tooltip('destroy'); 

我在Bootstrap 3中有一个情况,在

结束使用onchange="$('.tooltip').remove()"删除所有工具提示。 这种方法适用于BS方法不适用的地方。 希望它可以帮助有类似情况的人😉

笔记

我的opacity:0

我还将this.blur()添加到onchange事件中。 否则