Отображение данных всплывающей подсказки Bootstrap

На странице документации Bootstrap всплывающая подсказка имеет подпись:

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

Что делает атрибут "data-toggle" в этом сценарии?

Я знаю, что это полезно для вкладок, но я не вижу, какую полезность он может привнести в подсказки.


Крис

Всплывающая подсказка должна быть инициализирована явно, как в:

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

Предполагая, что тег "a" имеет класс "link". Атрибут "data-toggle" не является обязательным для правильной работы всплывающей подсказки. Но вы упомянули, что для файла JavaScript Bootstrap можно узнать, является ли что-то всплывающей подсказкой. Таким образом, не кажется, что исключение "переключения данных" все еще делает всплывающую подсказку (пока есть явная инициализация). Не могли бы вы объяснить далее?

Изменить # 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- * - в HTML5.

Таким образом, я предполагаю, что нет специального смыслового смысла или цели для data-toggle = "tooltip" , кроме как обеспечить удобный способ идентифицировать все всплывающие подсказки.

Обратите внимание, что вы также можете идентифицировать всплывающие подсказки с помощью идентификатора или класса, но почему бы не активировать всплывающие подсказки сразу (риторический вопрос)?

Ответ 1

После прочтения некоторых проблемных страниц 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- * - в HTML5.

Таким образом, я предполагаю, что нет специального смыслового смысла или цели для data-toggle = "tooltip" , кроме как обеспечить удобный способ идентифицировать все всплывающие подсказки.

Обратите внимание, что вы также можете идентифицировать всплывающие подсказки с помощью идентификатора или класса, но почему бы не активировать сразу все подсказки (риторический вопрос)?

Ответ 2

i использую это:

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

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

Ответ 3

Они решили использовать data-toggle в качестве индикатора в своем JavaScript, если что-то является подсказкой. Когда JS файл всплывающих подсказок видит атрибут data-toggle="tooltip", он знает, что нужно запускать и запускать.

Более общий подход может заключаться в использовании класса (<a href="#" class="tooltip" title="first tooltip">hover over me</a>), но вместо этого он отправил атрибут data-*. То же самое, работает, и философически, атрибуты data-* были разработаны для манипулирования JavaScript, поэтому я полагаю, что это хорошо, чтобы сохранить его свободным.