Empêcher toute propagation des événements avec jQuery

Deux éléments du DOM HTML qui se chevauchent, à la fois sensible à un événement click , souffrent du problème séculaire des événements Degi de propagation entre les couches de la DOM lui-même: la soi-disant la propagation d'événements. Ce comportement (qui se trouve aussi dans d'autres environnements de développement: voir Actionscript 3.0: MovieClip sur MovieClip ) est en soi utile dans de nombreux cas. Cependant, dans d'autres, génère pas quelques problèmes. . Par exemple, imaginez que nous avons un div conteneur sensible à l'événement click . En plus de cela, nous trouvons un lien vers une ancre classique a . En cliquant sur ​​le lien en plus de la page "changement" a déclenché l'événement associé à la div conteneur. contenitore, possiamo usare jQuery in questo modo: Pour éviter la propagation de l'événement click de l'ancre a la div conteneur, nous pouvons utiliser jQuery de cette façon:

1
2
3
4
5
6
7
8
9
10
11
"box" > < div id = "box">
"mylink" href = "#" > Link < / a > < a id = "mylink" href = "#"> LIEN </ a >
</ div >

<- Ou sur ->

"box" > < div id = "box">
<! - Content ->
</ div >
<- Cet ancrage possède modèles établis de manière à être en position absolue ou relative et ensuite superposée sur le conteneur div ->
"mylink" href = "#" > Link < / a > < a id = "mylink" href = "#"> LIEN </ a >

si propaghi agli elementi sottostanti: En utilisant jQuery, vous pouvez empêcher l'événement click sur la balise d'ancrage a se propager à des éléments ci-dessous:

1
2
3
4
5
6
7
) . click ( $ ('# A mylink'). Cliquez sur (
event ) { function (event) {
event. target . href ; documents = lieu de l'événement objectifs href...;
; . événement stopPropagation ();
; . événement preventDefault ();
}
);

One Response to " "

  1. 7 octobre 2009 Matthieu:

    Bonjour,

    quelqu'un me dit que le code dans le poste ça marche? Je voudrais éviter que les liens dans le premier niveau de ma faire le menu à plusieurs niveaux ouvrir une nouvelle page (créer le menu avec les fonctions de WordPress, donc je ne peux pas supprimer le lien), à savoir: en cliquant sur le lien doit seulement apparaître le sous-menu de premier niveau ( Je ne comparais avec jqueryslidemenu, mais c'est une autre histoire ... :) )
    Je vous remercie!

Laisser un commentaire

TAG XHTML Permis: Entrée du code:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL