Bootstrap tooltip data-переключатель

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

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

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

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


Крис

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

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

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

Edit #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-toggle для других компонентов и data - * действителен в HTML5.

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

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

3 ответов


прочитав некоторые страницы выпусков 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-toggle для других компонентов и data-* действителен в HTML5.

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


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

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

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


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

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