Maison > interface Web > js tutoriel > Comment empêcher les menus déroulants Twitter Bootstrap de se fermer lors de clics internes ?

Comment empêcher les menus déroulants Twitter Bootstrap de se fermer lors de clics internes ?

Susan Sarandon
Libérer: 2024-10-26 10:53:29
original
717 Les gens l'ont consulté

How to Prevent Twitter Bootstrap Dropdown Menus from Closing on Internal Clicks?

Empêcher la fermeture du menu déroulant lors des clics internes

Pour empêcher les menus déroulants Twitter Bootstrap de se fermer lorsqu'un élément interne est cliqué, une solution qui contourne la gestion déléguée des événements de clic est requise. Voici une explication détaillée et une solution proposée :

Par défaut, les menus déroulants Twitter Bootstrap se ferment à chaque clic, même dans le menu lui-même. Pour surmonter ce problème, une approche courante consiste à attacher un gestionnaire d'événements de clic au menu déroulant et à appeler event.stopPropagation() pour empêcher la propagation des événements.

Cependant, pour les configurations qui utilisent des composants tels que les contrôles de carrousel, l'événement délégué Le mécanisme de gestion de Twitter Bootstrap peut interférer avec le comportement prévu. Dans de tels cas, cliquer sur ces contrôles peut ne pas déclencher l'action attendue car l'événement n'atteint pas les gestionnaires d'événements délégués.

Se fier aux événements masqués/masqués dans la liste déroulante n'est pas une alternative viable car ces événements manquent d'informations essentielles et contrôle sur le contenu de la liste déroulante.

Solution proposée

Une solution efficace consiste à utiliser la délégation d'événements sur un élément conteneur qui héberge le menu déroulant. Voici un exemple :

<code class="js">$(document).on('click', 'someyourContainer .dropdown-menu', function (e) {
  e.stopPropagation();
});</code>
Copier après la connexion

Dans cet exemple, cliquer sur des éléments dans le conteneur spécifié propagera toujours l'événement à ses gestionnaires délégués respectifs. Cependant, les clics spécifiquement sur le menu déroulant seront interceptés et event.stopPropagation() empêchera le comportement de fermeture du menu déroulant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal