12

在 Bootstrap 文档页面中,工具提示具有以下签名:

<a href="#" data-toggle="tooltip" title="first tooltip">hover over me</a>

在这种情况下,“data-toggle”属性有什么作用?

我知道它对标签很有用,但我看不出它能给工具提示带来什么用处。


克里斯,

工具提示必须显式初始化,如下所示:

$(document).ready(function(){
    $(".link").tooltip();
});

假设“a”标签有一个“链接”类。“data-toggle”属性对于工具提示正确运行不是必需的。但是您提到它是让 Bootstrap JavaScript 文件识别某些东西是否是工具提示。因此,省略“数据切换”仍然使工具提示起作用似乎没有意义(只要有显式初始化)。你能进一步解释一下吗?

编辑#2:

在阅读了一些 GitHub 问题页面后,我想我得出了以下结论(这是我最好的猜测)。

最初,在旧版本的 Bootstrap 中,工具提示签名是:

<a href="#" rel="tooltip" title="first tooltip">hover over me</a>
...
<a href="#" rel="tooltip" title="first tooltip">hover over me again!</a>

开发人员可以这样做:

$(document).ready(function(){
    $('[rel="tooltip"]').tooltip();
});

一次激活所有工具提示(因为每个工具提示都需要初始化才能工作)。换句话说,这只是一种识别所有工具提示的便捷方式,以便您可以使用 jQuery 来激活所有工具提示。

但是 rel="tooltip" 没有针对 HTML5 进行验证,所以人们开始建议使用 data-toggle="tooltip" 因为 Bootstrap 已经将 data-toggle 用于其他组件并且 data-* 在 HTML5 中有效。

因此,我的猜测是 data-toggle="tooltip" 除了提供一种方便的方式来识别所有工具提示之外,没有特殊的语义含义或目的。

请注意,您也可以使用 ID 或类来识别工具提示,但为什么不一次激活所有工具提示(反问)?

4

3 回答 3

15

在阅读了一些 GitHub 问题页面后,我想我得出了以下结论(这是我最好的猜测)。

最初,在旧版本的 Bootstrap 中,工具提示签名是:

<a href="#" rel="tooltip" title="first tooltip">hover over me</a>
...
<a href="#" rel="tooltip" title="first tooltip">hover over me again!</a>

开发人员可以这样做:

$(document).ready(function(){
    $('[rel="tooltip"]').tooltip();
});

一次激活所有工具提示(因为每个工具提示都需要初始化才能工作)。换句话说,这只是一种识别所有工具提示的便捷方式,以便您可以使用 jQuery 来激活所有工具提示。

但是 rel="tooltip" 没有针对 HTML5 进行验证,所以人们开始建议使用 data-toggle="tooltip" 因为 Bootstrap 已经将 data-toggle 用于其他组件并且 data-* 在 HTML5 中有效。

因此,我的猜测是 data-toggle="tooltip" 除了提供一种方便的方式来识别所有工具提示之外,没有特殊的语义含义或目的。

请注意,您也可以使用 ID 或类来识别工具提示,但为什么不一次激活所有工具提示(反问)?

于 2013-08-21T20:23:09.923 回答
6

我用这个:

<script>
    $('[title]').tooltip();
</script>

它选择定义了属性标题的所有元素,并用引导的工具提示行为替换默认工具提示行为。

于 2014-08-28T01:33:25.913 回答
1

他们选择data-toggle在他们的 JavaScript 中用作工具提示的指示符。当工具提示 JS 文件看到该data-toggle="tooltip"属性时,它就知道启动并运行。

一种更常见的方法可能是使用类 ( <a href="#" class="tooltip" title="first tooltip">hover over me</a>),但它们已经使用了data-*属性。做同样的事情,工作,哲学上,data-*属性是为 JavaScript 操作而设计的,所以我认为保持它类免费是件好事。

于 2013-06-22T22:04:28.030 回答