让我们使用一个示例来说明如何将工具提示添加到文档中的任何HTML元素。
注意:
如果将这些工具提示示例放在页面中后不起作用,那么您还有另一个问题。您需要查看以下内容:
- 包含脚本的顺序
- 查看您是否正在尝试初始化已删除的HTML元素
- 查看您是否尝试在JS文件中调用方法,不再包含
查看您是否包括提供所需功能的JS文件(不仅用于工具提示,还包括您在页面上使用的任何组件)。
<head>
<link rel="stylesheet" href="/Content/bootstrap.css" />
<link rel="stylesheet" href="/Content/animate.css" />
<link rel="stylesheet" href="/Content/style.css" />
</head>
<body>
... your HTML code ...
<script src="/Scripts/jquery-2.1.1.js"></script>
<script src="/Scripts/bootstrap.min.js"></script>
<script src="/Scripts/app/inspinia.js"></script> <!-- if using INSPINIA -->
... your JavaScript initializers ...
</body>
以上任何一项的失败都可以(而且经常如此)阻止javascript的加载和/或运行,并使所有内容保持良好状态和残缺状态。
工作实例
假设您有一个徽章,并且希望它在用户将鼠标悬停在其上时显示工具提示。
原始HTML:
<span class="badge badge-sm badge-plain">Admin Mode</span>
普通引导工具提示
如果要为HTML元素创建工具提示,并且使用的是Plain Bootstrap工具提示,那么您将负责使用自己的JavaScript代码调用工具提示初始化程序。
之前
<span class="badge badge-sm badge-plain">Admin Mode</span>
后
<span
class="badge badge-sm badge-plain"
data-toggle="tooltip"
data-placement="right"
title="Tooltip on right"
>Admin Mode</span>
初始化器
<script>
// Initialize any Tooltip on this page
$(document).ready(function ()
{
$('[data-toggle="tooltip"]').tooltip();
}
);
</script>
Bootstrap模板工具提示(例如INSPINIA)
如果您正在使用引导程序模板(例如INSPINIA),则将包括一个支持脚本以支持模板功能:
<script src="/Scripts/app/inspinia.js" />
对于INSPINIA,当文档加载完成时,包含的脚本通过运行以下javascript代码自动初始化所有工具提示:
// Tooltips demo
$('.tooltip-demo').tooltip({
selector: "[data-toggle=tooltip]",
container: "body"
});
因此,您不必自己初始化INSPINIA样式的工具提示。但是您必须以特定的方式格式化元素。初始化程序tooltip-demo
在class
属性中查找带有的HTML元素,然后调用该tooltip()
方法以初始化定义了该属性的所有子元素data-toggle="tooltip"
。
在我们的例子徽章,放置在其周围的外元件(如一个<div>
或<span>
具有)class="tooltip-demo"
,然后将data-toggle
,data-placement
以及title
属性为是徽章的元件内的实际工具提示。从上方修改原始HTML,如下所示:
之前
<span class="badge badge-sm badge-plain">Admin Mode</span>
后
<span class="tooltip-demo">
<span
class="badge badge-sm badge-plain"
data-toggle="tooltip"
data-placement="right"
title="Tooltip on right"
>Admin Mode</span>
</span>
初始化器
None
请注意,元素内的所有子元素都<span class="tooltip-demo">
将正确准备其工具提示。我可以有三个子元素,都需要工具提示,然后将它们放在一个容器中。
多个项目,每个项目都有一个工具提示
<span class="tooltip-demo">
<span class="badge badge-sm badge-plain" data-toggle="tooltip" data-placement="right" title="A Tooltip">Text 001</span>
<span class="badge badge-sm badge-plain" data-toggle="tooltip" data-placement="right" title="Another Tooltip">Text 002</span>
<span class="badge badge-sm badge-plain" data-toggle="tooltip" data-placement="right" title="Third Tooltip">Text 003</span>
</span>
最好的用法是将添加class="tooltip-demo"
到<td>
或最外层<div>
或<span>
。
使用模板时的普通Bootstrap工具提示
如果使用的是INSPINIA,但不想添加额外的外部标签<div>
或<span>
标签来创建工具提示,则可以使用标准的Bootstrap工具提示,而不会干扰模板。在这种情况下,您将负责自己初始化工具提示。但是,您应该在class
属性中使用自定义值 来标识您的工具提示项。这将使您的Tooltip初始化程序不会受到INSPINIA影响的元素的干扰。在我们的示例中,让我们使用standalone-tt
:
之前
<span class="badge badge-sm badge-plain">Admin Mode</span>
后
<span
class="standalone-tt badge badge-sm badge-plain"
data-toggle="tooltip"
data-placement="right"
title="Tooltip on right"
>Admin Mode</span>
初始化器
<script>
// Initialize MY standalone tooltips, ignoring INSPINIA-affected elements
$(document).ready(function ()
{
$('.standalone-tt').tooltip();
}
);
</script>