Que font les attributs data-toggle
dans Twitter Bootstrap? Je n'ai pas pu trouver de réponse dans l'API Bootstrap.
J'ai déjà vu une question similaire auparavant, lien . Mais cela ne m'a pas beaucoup aidé.
C'est un attribut de données HTML5 qui relie automatiquement l'élément au type de widget qu'il est.
Quelques exemples:
data-toggle="modal"
data-toggle="collapse"
data-toggle="dropdown"
data-toggle="tab"
Parcourez le JavaScript et recherchez Data-toggle et vous le verrez utilisé dans les exemples de code.
Un exemple de travail:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Dropdown trigger</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="#">Item</a></li>
</ul>
</div>
Tout attribut commençant par data-
est le préfixe des attributs personnalisés utilisés à des fins spécifiques (cette fin dépend de l'application). Il a été ajouté en tant que remède sémantique à l'usage intensif de rel
et d'autres attributs à des fins autres que celles initialement prévues (rel
était souvent utilisé pour stocker des données telles que des info-bulles avancées).
Dans le cas de Bootstrap, je ne connais pas son fonctionnement interne, mais à en juger par son nom, je suppose que c’est un crochet qui permet de basculer la visibilité ou peut-être un mode de l’élément auquel il est attaché (comme le barre latérale sur Octopress.org ).
html5doctor a un bon article sur l'attribut data .
Le cycle 2 est un autre exemple d'utilisation intensive de l'attribut data .
Par exemple, supposons que vous créiez une application Web pour répertorier et afficher les recettes. Vous voudrez peut-être que vos clients puissent trier la liste, afficher les fonctionnalités des recettes, etc. avant de choisir la recette à ouvrir. Pour ce faire, vous devez associer des éléments tels que le temps de cuisson, l'ingrédient principal, la position du repas, etc., directement dans la liste des éléments des recettes.
<li><a href="recipe1.html">Borscht</a></li>
<li><a href="recipe2.html">Chocolate Mousse</a></li>
<li><a href="recipe3.html">Almond Radiccio Salad</a></li>
<li><a href="recipe4.html">Deviled Eggs</a></li>
Afin d'obtenir cette information dans la page, vous pouvez faire beaucoup de choses différentes. Vous pouvez ajouter des commentaires à chaque élément LI, vous pouvez ajouter des attributs rel aux éléments de la liste, vous pouvez placer toutes les recettes dans des dossiers distincts en fonction de l'heure, du repas et de l'ingrédient (c'est-à-dire). La solution choisie par la plupart des développeurs consistait à utiliser des attributs de classe pour stocker des informations sur l'élément en cours. Cela présente plusieurs avantages:
Mais cette méthode présente des inconvénients majeurs:
Toutes les autres méthodes que j'ai suggérées avaient ces problèmes ainsi que d'autres. Mais comme c’était le seul moyen d’inclure rapidement et facilement des données, c’est ce que nous avons fait. Attributs de données HTML5 à la rescousse
HTML5 a ajouté un nouveau type d'attribut à un élément: l'élément de données personnalisé (data- *). Ce sont des attributs personnalisés (indiqués par *) que vous pouvez ajouter à vos éléments HTML pour définir le type de données souhaité. Ils se composent de deux parties:
Nom de l'attribut Il s'agit du nom de l'attribut. Il doit comporter au moins une minuscule et avoir le préfixe data-. Par exemple: données-ingrédient principal, données-temps de cuisson, données-repas. Ceci est le nom de vos données.
Attribut Vaule Comme tout autre attribut HTML, vous incluez les données elles-mêmes entre guillemets séparés par un signe égal. Ces données peuvent être n'importe quelle chaîne valide sur une page Web. Par exemple: data-main-ingrédient = "chocolat".
Vous pouvez ensuite appliquer ces attributs de données à n’importe quel élément HTML de votre choix. Par exemple, vous pouvez définir les informations dans la liste d’exemples ci-dessus:
<li data-main-ingredient="beets" data-cooking-time="1 hour" data-meal="dinner"><a href="recipe1.html">Borscht</a></li>
<li data-main-ingredient="chocolate" data-cooking-time="30 minutes" data-meal="dessert"><a href="recipe2.html">Chocolate Mousse</a></li>
<li data-main-ingredient="radiccio" data-cooking-time="20 minutes" data-meal="dinner"><a href="recipe1.html">Almond Radiccio Salad</a></li>
<li data-main-ingredient="eggs" data-cooking-time="15 minutes" data-meal="appetizer"><a href="recipe1.html">Deviled Eggs</a></li>
Une fois que vous avez ces informations dans votre code HTML, vous pourrez y accéder avec JavaScript et manipuler la page en fonction de ces données.
Depuis le Bootstrap Docs:
<!--Activate a modal without writing JavaScript. Set data-toggle="modal" on a
controller element, like a button, along with a data-target="#foo" or href="#foo"
to target a specific modal to toggle.-->
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Tant de réponses ont été données, mais elles ne vont pas droit au but. Réglons ça.
http://www.w3schools.com/bootstrap/bootstrap_ref_js_collapse.asp
Jusqu'au point
data-
n'est pas analysé par l'analyseur HTML5.data-toggle
pour créer une fonctionnalité de réduction.Comment utiliser: Seulement 2 étapes
class="collapse"
à l'élément #A
que vous souhaitez réduire.data-target="#A"
et data-toggle="collapse"
.Objectif: l'attribut data-toggle
nous permet de créer un contrôle pour réduire/développer une div
(bloc) si nous utilisons Bootstrap.
La présence de cet attribut de données indique à Bootstrap de basculer entre les états visuels ou logiques d'un autre élément lors de l'interaction de l'utilisateur.
Il est utilisé pour afficher les modaux, le contenu des onglets, les info-bulles et les menus contextuels, ainsi que pour définir l'état enfoncé pour un bouton bascule. Il est utilisé de multiples façons sans documentation claire.
Le basculement de données dans bootstrap a pour but de vous permettre d'utiliser jQuery pour rechercher toutes les balises d'un certain type. Par exemple, vous mettez data-toggle = "popover" dans toutes les balises popover, puis vous pouvez utiliser un sélecteur JQuery pour rechercher toutes ces balises et exécuter la fonction popover () pour les initialiser. Vous pouvez aussi bien mettre class = "myPopover" sur la balise et utiliser le sélecteur .myPopover pour faire la même chose. La documentation est déroutante, car elle donne à penser que quelque chose de spécial se passe avec cet attribut.
Cette
<div class="container">
<h3>Popover Example</h3>
<a href="#" class="myPop" title="Popover1 Header" data-content="Some content inside the popover1">Toggle popover1</a>
<a href="#" class="myPop" title="Popover2 Header" data-content="Some content inside the popover2">Toggle popover2</a>
</div>
<script>
$(document).ready(function(){
$('.myPop').popover();
});
</script>
fonctionne très bien.
Il s'agit d'un attribut de données HTML5 défini par Bootstrap. Il lie un bouton à un événement.
Bootstrap utilise les normes HTML5 pour accéder facilement aux attributs des éléments DOM dans javascript.
Forme une classe d'attributs, appelés attributs de données personnalisés, permettant l'échange d'informations entre le code HTML et sa représentation DOM pouvant être utilisée par les scripts. Toutes ces données personnalisées sont disponibles via l'interface HTMLElement de l'élément sur lequel l'attribut est défini. La propriété HTMLElement.dataset leur donne accès.
Ici vous pouvez également trouver plus d'exemples de valeurs que data-toggle
peut avoir attribuées. Il suffit de visiter la page, puis CTRL+F
pour rechercher data-toggle
.