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

LSD*_*LSD 20 javascript jquery twitter-bootstrap twitter-bootstrap-tooltip

我有一个$("#settings")div与多个引导工具提示附加到子元素.

例如,

<div id="settings" style="display: flex;">
  <tbody>
    <tr>
      <td width="25%" class="left Special" style="font-size:150%">Content:</td>
      <td width="5%"></td>
      <td width="70%" class="Special settingswrong" style="font-size:200%"><div style="display:inline" data-toggle="tooltip" data-placement="right" title="" data-original-title="This is not what you are looking for!">Content</div></td>
    </tr>
    <tr>
      <td width="25%" class="left Special" style="font-size:150%">Content:</td>
      <td width="5%"></td>
      <td width="70%" class="Special settingswrong" style="font-size:200%"><div style="display:inline" data-toggle="tooltip" data-placement="right" title="" data-original-title="This is not what you are looking for!">Content</div></td>
    </tr>
  </tbody>
</div>
Run Code Online (Sandbox Code Playgroud)

我想要$("#settings").tooltip('destroy')按下按钮上的所有这些工具提示,但它不起作用,我假设因为工具提示实际上不在设置div上,而是在其中.

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

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

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

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

Tec*_*nic 39

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

$("body").tooltip({ selector: '[data-toggle=tooltip]' });
Run Code Online (Sandbox Code Playgroud)

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

$('body').tooltip('dispose');
Run Code Online (Sandbox Code Playgroud)

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

 $('[data-toggle="tooltip"]').tooltip();
Run Code Online (Sandbox Code Playgroud)

并摧毁它:

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

如果你仍然想要初始化槽委托并使用disable(小提琴)阻止它工作:

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

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
Run Code Online (Sandbox Code Playgroud)

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


kjd*_*n84 9

选择的答案会破坏工具提示,因此它们完全消失,其功能被禁用.

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


Muh*_*man 8

作为引导版本4,并根据文件,你应该使用处置作为destroy不再定义.示例如下:

$('#element').tooltip('dispose')
Run Code Online (Sandbox Code Playgroud)