Deux éléments qui se chevauchent sur le DOM HTML, à la fois sensible à un événement click , souffrent du problème séculaire des événements degi propagation entre les couches du modèle DOM-même: la propagation d'événements dits. Ce comportement (qui se retrouve également dans d'autres environnements de développement: Voir Actionscript 3.0: MovieClip MovieClip plus ) est en soi utile dans de nombreux cas. Cependant, dans d'autres, il crée de nombreux problèmes. . Par exemple, imaginez que vous avez une div contenant sensibles évènement click . Superposé à ce sujet sont un lien d'ancrage classique a . En cliquant sur le lien en plus de la "tourner la page" a déclenché l'événement associé à la div conteneur. contenitore, possiamo usare jQuery in questo modo: Pour empêcher l'événement de clic répandre dall'anchor a l' div conteneur, nous pouvons utiliser jQuery comme ceci:
1 2 3 4 5 6 7 8 9 10 11 | "box" > < div id = "box"> "mylink" href = "#" > Link < / a > < une id = "MyLink" href = "#"> Lien </ une > </ div > <! - Ou -> "box" > < div id = "box"> <! - Contenu -> </ div > <! - Cette ancre a des styles établis de manière à être en position absolue ou relative et ensuite superposées sur le div conteneur -> "mylink" href = "#" > Link < / a > < une id = "MyLink" href = "#"> Lien </ une > |
si propaghi agli elementi sottostanti: Utilisation de jQuery, vous pouvez empêcher l'événement click sur la balise d'ancrage a être propagées à des éléments mentionnés ci-dessous:
1 2 3 4 5 6 7 | ) . click ( $ ('# Une MyLink'). Cliquez sur ( event ) { fonction (event) { event. target . href ; .. document de location = événement cible href.; ; événement stopPropagation ().; ; . évènement preventDefault (); } ); |











Bonjour,
quelqu'un me dit que le code fonctionne dans le message? Je veux garder les liens de la première couche de mon multi-niveaux des menus ne ouvrir une nouvelle page (je créer le menu avec les fonctions de WordPress, donc je ne peux pas enlever les liens), c'est à dire: en cliquant sur le lien ne devrait apparaître que le sous-menu de premier niveau ( Je ne s'affichent avec jqueryslidemenu, mais c'est une autre histoire ...
)
Merci!