Я схожу с ума здесь.
У меня есть следующий HTML:
<a href="#" rel="tooltip" title="A nice tooltip">test</a>
И подсказка типа Bootstrap отказывается отображать, просто обычная подсказка.
У меня bootstrap.css работает отлично, и я вижу классы там
У меня есть все соответствующие JS файлы в конце моего файла HTML:
<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap-alert.js"></script>
<script src="bootstrap/js/bootstrap-modal.js"></script>
<script src="bootstrap/js/bootstrap-transition.js"></script>
<script src="bootstrap/js/bootstrap-tooltip.js"></script>
Я посмотрел на источник примера Bootstrap и не вижу ничего, что инициирует всплывающую подсказку где-нибудь там. Поэтому я предполагаю, что это должно сработать, или я пропустил что-то жизненно важное здесь?
У меня есть модальности и предупреждения, а другие вещи работают нормально, поэтому я не полный придурок;)
Спасибо за любую помощь!
Подводя итог: активируйте всплывающие подсказки с помощью селекторов jQuery
<script type="text/javascript">
$(function () {
$("[rel='tooltip']").tooltip();
});
</script>
На самом деле вам не нужно использовать селектор атрибутов, вы можете вызывать его на любом элементе, даже если он не имеет rel="tooltip"
в своем теге.
bootstrap.js.coffee
с $(".tooltip").tooltip()
. Просто убедитесь, что в ваш application.js
включен //= require bootstrap
.
После того, как я столкнулся с той же проблемой, я нашел, что это решение работает без необходимости добавлять дополнительные атрибуты тега за пределы требуемых атрибутов Bootstrap.
HTML
<a href="#" data-toggle="tooltip" title="Title Here">Hyperlink Text</a>
JQuery
$(document).ready(function() {
$("body").tooltip({ selector: '[data-toggle=tooltip]' });
});
Надеюсь, это поможет!
Вам не нужны все js файлы отдельно
Просто используйте следующие файлы, если вы собираетесь использовать все функции начальной загрузки:
-bootstrap.css
-bootstrap.js
оба из них можно найти в http://twitter.github.com
и, наконец,
-Latest версия jquery.js
Для глификонов вам понадобится изображение
glyphicons-halfings.png и/или glyphicons-halfings-white.png(белые цветные изображения)
который вам нужно загрузить внутри /img/folder веб-сайта (или), где он когда-либо захочет, но измените каталог папки внутри bootstrap.css
Для всплывающей подсказки вам понадобится следующий script внутри вашего <head> </head>
тег
<script type='text/javascript'>
$(document).ready(function () {
if ($("[rel=tooltip]").length) {
$("[rel=tooltip]").tooltip();
}
});
</script>
Что это...
http://getbootstrap.com/javascript/#tooltips-usage
Функции выбора По соображениям производительности всплывающая подсказка и данные Pop-apis являются опцией, означающей
вы должны инициализировать их самостоятельно.
Один из способов инициализации всех всплывающих подсказок на странице - это выбрать их по атрибуту data-toggle:
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
помещая этот фрагмент кода в свой html, вы можете использовать всплывающие подсказки
Примеры:
<!-- button -->
<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</button>
<!-- a tag -->
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
Я знаю, что это старый вопрос, но поскольку у меня возникла эта проблема с новой версией бутстрапа и ее непонятным на веб-сайте, вот как вы активируете всплывающую подсказку.
дать вашему элементу класс, подобный "tooltip-test"
затем активируйте этот класс в теге javascript:
<script type="text/javascript">
$('.tooltip-test').tooltip();
</script>
<a href="#" class="tooltip-test" title="" data-original-title="Tooltip">This link</a>
HTML
<a href="#" data-toggle="tooltip" title="Title Here">Hyperlink Text</a>
JQuery
$(document).ready(function() {
$('[data-toggle=tooltip]').tooltip();
});
Эта работа для меня.
Если вы выполните $("[rel='tooltip']").tooltip();
, как предложили другие ответы, вы активируете всплывающие подсказки только для элементов, которые в настоящее время находятся в DOM. Это означает, что если вы собираетесь изменить DOM и вставить динамический контент позже, это не сработает. Кроме того, это гораздо менее эффективно, поскольку он устанавливает обработчик событий для отдельных элементов, а не для делегирования события JQuery. Поэтому лучший способ, который я нашел для активации всплывающих подсказок Bootstrap, - это одна строка кода, которую вы можете разместить в документе и забыть об этом:
$(document.body).tooltip({ selector: "[title]" });
Обратите внимание, что я использую title
как селектор вместо rel=title
или data-title
. Это имеет то преимущество, что его можно применять ко многим другим элементам (rel
предполагается только для якорей), а также он работает как "резервный" для старых браузеров.
Также обратите внимание, что вам не нужен атрибут data-toggle="tooltip"
, если вы используете вышеприведенный код.
Всплывающие подсказки Bootstrap дороги, потому что вам нужно обрабатывать события мыши на каждом из элементов. Именно по этой причине они не включили его по умолчанию. Поэтому, если вы когда-нибудь решите прокомментировать вышеприведенную строку, ваша страница будет работать, если вы используете атрибут title.
Если вы не используете атрибут title, я бы рекомендовал использовать чистое решение CSS, такое как Hint.css, или проверить http://csstooltip.com, который не требует никакого кода JavaScript вообще.
Это самый простой способ. Просто поместите это перед </body>
:
<script type="text/javascript">
$("[data-toggle=\"tooltip\"]").tooltip();
</script>
Посмотрите примеры, приведенные в документации Bootstrap о подсказках.
Например:
<a href="#"
data-toggle="tooltip"
data-placement="bottom"
title="Tooltip text here">Link with tooltip</a>
Всплывающая подсказка и всплывающие окна - это не только плагины css, такие как раскрывающийся список или панель прогресса. Чтобы использовать всплывающие подсказки и popover, вы ДОЛЖНЫ активировать их с помощью jquery (читайте javascript).
Итак, скажем, мы хотим, чтобы popover отображался при нажатии кнопки html.
<a href="#" role="button"
class="btn popovers-to-be-activated"
title="" data-content="And here some amazing content."
data-original-title="A Title" "
>button</a>
Затем для активации popover вам нужен следующий код javascript:
$('.popovers-to-be-activated').popover();
Фактически, выше код javascript активирует popover на всех элементах html, которые имеют класс "popovers-to-be-activated".
Излишне говорить, что поставить вышеперечисленный javascript внутри обратного вызова DOM-ready, чтобы активировать все popovers, как только DOM будет готов:
$(function() {
// Handler for .ready() called.
$('.popovers-to-be-activated').popover();
});
в разделе главы вам нужно сначала добавить следующий код
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});
</script>
Затем в разделе body вам нужно написать следующий код
<p>The data-placement attribute specifies the tooltip position.</p>
<ul class="list-inline">
<li><a href="#" data-toggle="tooltip" data-placement="top" title="Hooray!">Top</a></li>
<li><a href="#" data-toggle="tooltip" data-placement="bottom" title="Hooray!">Bottom</a></li>
<li><a href="#" data-toggle="tooltip" data-placement="left" title="Hooray!">Left</a></li>
<li><a href="#" data-toggle="tooltip" data-placement="right" title="Hooray!">Right</a></li>
Если все еще не разрешено Использовать последнюю библиотеку JQuery, вам не нужен какой-либо из селекторов jquery, если вы используете последнюю версию bootstrap 2.0.4 и jquery-1.7.2.js
Просто используйте rel="tooltip" title="Your Title" data-placement=" "
Используйте верхнюю/нижнюю/левую/правую область размещения данных согласно вашему желанию.
Давайте используем пример, чтобы показать, как всплывающие подсказки можно добавить к любому элементу HTML в вашем документе.
Если эти образцы подсказок не работают, когда вы помещаете их на свою страницу, у вас возникает другая проблема. Вам нужно посмотреть на такие вещи, как:
Посмотрите, включаете ли вы 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>
Если вы используете шаблон начальной загрузки (например, INSPINIA), вы включаете поддержку script для поддержки функций шаблона:
<script src="/Scripts/app/inspinia.js" />
В случае INSPINIA включенный script автоматически инициализирует все всплывающие подсказки, запустив следующий код 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>
инициализатор
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
для идентификации ваших элементов Tooltip. Это приведет к тому, что инициализатор 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>
Я только что добавил:
<script src="http://getbootstrap.com/assets/js/docs.min.js"></script>
ниже bootstrap.min.js, и он работает.
В моем конкретном случае это не сработало, потому что я включал две версии jQuery. Один для бутстрапа, но другой (другая версия) для графиков Google.
Когда я удаляю загрузку jQuery для диаграмм, она отлично работает.
Если использовать Rails + Haml гораздо проще включить всплывающую подсказку, просто выполните:
= link_to '', some_path(), :class => "btn btn-success btn-mini icon-plane", :rel => "tooltip", :title => "Referential Guide"
Это просто добавьте следующую строку в конец элемента.
:rel => "tooltip", :title => "Referential Guide"
Я добавил jquery и bootstrap-tooltip.js в заголовке. Добавление этого кода в нижний колонтитул работает для меня! но когда я добавляю тот же код в заголовке, он не работает!
<script type="text/javascript">
$('.some-class').tooltip({ selector: "a" });
</script>
$(function() { ... });
У меня была аналогичная проблема, особенно если вы работаете в контейнере с кнопками, например, в контейнере с вертикальной кнопкой. В этом случае вы должны установить контейнер как "тело"
I have added a jsfiddle example
Вы должны поместить подсказку javascript после html. например:
<a href="#" rel="tooltip" title="Title Here"> I am Here</a>
<script>
$("* [rel='tooltip']").tooltip({
html: true,
placement: 'bottom'
});
</script>
Или используйте $(document).ready:
$(document).ready(function() {
$("* [rel='tooltip']").tooltip({
html: true,
placement: 'bottom'
});
});
</script>
Всплывающая подсказка не работает, потому что вы помещаете html tooltip перед javascript, поэтому они не знают, есть ли javascript для всплывающей подсказки. По-моему, script читается сверху вниз.
Если вы создаете свой html, содержащий всплывающую подсказку с javascript, а затем вставляете его в документ, вам нужно активировать popover/tooltip ПОСЛЕ того, как вы вставили html в документ, а не на загрузку документа...
Из документов начальной загрузки на всплывающие подсказки
Подсказки включены по соображениям производительности, поэтому вы должны инициализировать их самостоятельно. Один из способов инициализации всех всплывающих подсказок на странице состоит в том, чтобы выбрать их по их атрибуту переключения data-:
$('[data-toggle="tooltip"]').tooltip()
Поместите свой код внутри документа в готовность
$(document).ready(function () {
if ($("[rel=tooltip]").length) {
$("[rel=tooltip]").tooltip();
}
});
В моем случае мне также не хватало классы css всплывающих подсказок на http://twitter.github.com/bootstrap/assets/css/bootstrap.css поэтому не забывайте об этом.
Добавьте data-toggle="tooltip"
любые элементы, которые вы хотите с помощью всплывающей подсказки.
Вам нужно сделать следующее. Добавить
<script type="text/javascript">
$(function () {
$("[rel='tooltip']").tooltip();
});
</script>
код где-то на вашей странице (желательно в разделе <head>
).
Также добавьте data-toggle: "tooltip"
ко всему, что вы хотите включить с ним.
Быстрая и легкая альтернатива плагину всплывающей подсказки Bootstrap:
<div>
<div class="mytooltip" id="pwdLabel">
<label class="control-label" for="password">Password</label>
<div class="mytooltiptext" id="pwdLabel_tttext">
6 characters long, must include letters and numbers
</div>
</div>
<input type="password" name="password" value="" id="password" autocomplete="off"
class="form-control"
style="width:125px" />
</div>
<style>
.mytooltiptext {
position: absolute;
left: 0px;
top: -45px;
background-color: black;
color: white;
border: 1px dashed silver;
padding:3px;
font-size: small;
text-align: center;
}
.mytooltip {
position: relative;
}
.mytooltip label {
border-bottom: 1px dashed black !important;
}
</style>
$(".mytooltip").mouseover(function(){
var elm = this.id;
$("#" + elm + "_tttext").fadeIn("slow");
});
var ttTmo;
$(".mytooltip").mouseout(function(){
var elm = this.id;
clearTimeout(ttTmo);
ttTmo = setTimeout(function(){
$("#" + elm + "_tttext").fadeOut("slow");
},3000);
});
Ярлык/текст должен быть заключен в оболочку класса "mytooltip". Эта оболочка должна иметь идентификатор.
После метки есть текст подсказки инструмента, завернутый в div класса "mytooltiptext" и id, состоящий из идентификатора родительской оболочки + "_tttext". Можно использовать другие опции для селекторов.
Надеюсь, что это поможет.
code
<a href="#" rel="tooltip" title="A nice tooltip" class="tooltip-test"> test </a> <br> <script> // tooltip demo $ ( '.tooltip-test'). tooltip () </ script>