消灭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事件中。 否则