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>
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!