jQuery – Cliquez sur LI, affichez / cachez UL – Cliquez sur LI: un href, continuez à afficher UL et ouvrez une fenêtre vierge.

Merci aux merveilleux consortingbuteurs ici à SO! jQuery est beaucoup plus cool quand vous commencez à le comprendre. 🙂

J’ai donc un LI qui, lorsqu’on clique dessus, montre / cache un UL enfant. Ce que j’aimerais faire, c’est pouvoir cliquer sur un lien dans la LI qui ouvre une fenêtre vide, mais ne ferme pas non plus le UL enfant. L’ouverture de la fenêtre vide est terminée

a[href^="http://"]').attr("target", "_blank"); 

Cependant, je ne suis pas sûr de savoir comment “retourner: faux” sur le LI afin qu’il ne ferme pas l’UL lorsque la fenêtre vide s’ouvre. Je veux que l’utilisateur puisse voir le UL enfant sur lequel il était lorsqu’il a fermé la fenêtre vierge.

Si ce n’est pas clair, s’il vous plaît faites le moi savoir.

Merci!

Je pense que ce que vous recherchez est probablement event.stopPropagation ()

Voici la documentation: http://api.jquery.com/event.stopPropagation/

En gros, ce qui se passe, c’est que lorsque vous cliquez sur , l’événement click se déclenche, mais comme il est contenu dans

  • , il se déclenche également. Ce processus de l’événement allant de l’enfant au parent est appelé événement bouillonnant. Vous pouvez utiliser event.stopPropagation () pour l’arrêter.

    Supposons que vous avez une structure HTML comme celle-ci:

      

    De plus, nous dirons que vous avez une règle CSS:

     ul ul { display: none; } 

    Appliquez ce jQuery et vous devriez obtenir le résultat recherché:

     $(function () { $('.reveal').click(function() { $(this).children('ul').slideToggle(); }); $('.reveal a').click(function(event) { event.stopPropagation(); }); }); 

    Voici une démonstration en direct de cette action: http://jsfiddle.net/PaxTg/

    vous voudrez peut-être consulter les ordres d’événements , puis arrêter la propagation de votre événement au moment opportun