Давайте используем пример, чтобы показать, как всплывающие подсказки могут быть добавлены к любому элементу 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>
Initializer
<script>
// Initialize any Tooltip on this page
$(document).ready(function ()
{
$('[data-toggle="tooltip"]').tooltip();
}
);
</script>
Всплывающие подсказки шаблона начальной загрузки (например, INSPINIA)
Если вы используете шаблон начальной загрузки (например, INSPINIA), вы включаете вспомогательный скрипт для поддержки функций шаблона:
<script src="/Scripts/app/inspinia.js" />
В случае INSPINIA включенный скрипт автоматически инициализирует все всплывающие подсказки, выполнив следующий код JavaScript после завершения загрузки документа:
// Tooltips demo
$('.tooltip-demo').tooltip({
selector: "[data-toggle=tooltip]",
container: "body"
});
Из-за этого вам НЕ нужно инициализировать подсказки в стиле INSPINIA самостоятельно. Но вам НЕОБХОДИМО отформатировать ваши элементы определенным образом. Инициализатор ищет элементы HTML tooltip-demo
в class
атрибуте, а затем вызывает 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>
Initializer
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>
.
Обычные всплывающие подсказки при использовании шаблона
Если вы используете INSPINIA, но не хотите добавлять дополнительные внешние элементы <div>
или <span>
теги для создания всплывающих подсказок, вы можете использовать стандартные всплывающие подсказки Bootstrap без вмешательства в шаблон. В этом случае вы будете нести ответственность за инициализацию подсказок самостоятельно. Тем не менее, вы должны использовать пользовательское значение в class
атрибуте, чтобы идентифицировать элементы подсказки. Это не даст инициализатору всплывающей подсказки вмешиваться в элементы, на которые влияет 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>
Initializer
<script>
// Initialize MY standalone tooltips, ignoring INSPINIA-affected elements
$(document).ready(function ()
{
$('.standalone-tt').tooltip();
}
);
</script>