Всплывающие подсказки начальной загрузки не работают - PullRequest
241 голосов
/ 25 февраля 2012

Я схожу с ума здесь.

У меня есть следующий 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 и не вижу ничего, что инициирует всплывающую подсказку где-либо там.Так что я предполагаю, что это должно просто сработать, или я здесь что-то упускаю?

У меня есть модалы, оповещения и другие вещи, которые работают просто отлично, поэтому я не полный дебил;)

Спасибо за любую помощь!

Ответы [ 24 ]

4 голосов
/ 06 июля 2012

Если все еще не решено. Использовать последнюю библиотеку Jquery, вам не понадобится ни один из селекторов jquery, если вы используете последнюю загрузочную версию 2.0.4 и jquery-1.7.2.js

Просто используйте rel="tooltip" title="Your Title" data-placement=" "

Используйте верхнее / нижнее / левое / правое в размещении данных по вашему желанию.

3 голосов
/ 25 февраля 2016

Позволяет использовать пример, чтобы показать, как всплывающие подсказки могут быть добавлены к любому элементу 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() для инициализации любых элементов child , для которых определен атрибут 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> для создания всплывающих подсказок, вы можете использовать стандартные всплывающие подсказки начальной загрузки, не влияя на шаблон. В этом случае вы будете нести ответственность за инициализацию подсказок самостоятельно. Однако вам следует использовать пользовательское значение в атрибуте 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>
3 голосов
/ 10 октября 2014

Я только что добавил:

<script src="http://getbootstrap.com/assets/js/docs.min.js"></script>

ниже bootstrap.min.js и все работает.

3 голосов
/ 01 марта 2012

Я добавил jquery и bootstrap-tooltip.js в шапку.Добавление этого кода в нижний колонтитул работает для меня!но когда я добавляю тот же код в заголовок, он не работает!

<script type="text/javascript">
$('.some-class').tooltip({ selector: "a" });
</script>
3 голосов
/ 29 сентября 2012

Если с помощью Rails + Haml намного проще включить всплывающую подсказку, просто выполните:

= link_to '', some_path(), :class => "btn btn-success btn-mini icon-plane", :rel => "tooltip", :title => "Referential Guide"

То есть просто добавьте следующую строку в конце элемента.

:rel => "tooltip", :title => "Referential Guide"
3 голосов
/ 13 декабря 2012

В моем конкретном случае это не сработало, потому что я включал две версии jQuery. Один для начальной загрузки, а другой (другая версия) для Google Charts.

Когда я удаляю загрузку jQuery для диаграмм, она работает нормально.

2 голосов
/ 11 июня 2014

У меня была похожая проблема, особенно если вы работаете в контейнере кнопок, например в вертикальном контейнере кнопок. В этом случае вы должны установить контейнер как 'body'

I have added a jsfiddle example

пример

2 голосов
/ 28 января 2014

Вы должны поместить всплывающую подсказку 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 всплывающей подсказки перед javascript , поэтому они не знают, существует ли javascript для всплывающей подсказки. На мой взгляд, скрипт читается сверху вниз.

2 голосов
/ 18 июля 2013

Если вы создаете HTML, который содержит всплывающую подсказку с javascript, а затем вставляете ее в документ, вы должны активировать всплывающую подсказку / подсказку ПОСЛЕ того, как вставили HTML в документ, а не при загрузке документа ...

1 голос
/ 20 августа 2018

Из начальной загрузки Документы в подсказках

Подсказки включены по соображениям производительности, поэтому вы должны инициализировать их самостоятельно. Один из способов инициализации всех всплывающих подсказок на странице - выбрать их по их данным. атрибут переключения:

  $('[data-toggle="tooltip"]').tooltip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...