Partage
  • Partager sur Facebook
  • Partager sur Twitter

arret propagation

    4 avril 2024 à 16:15:09

    bonjour

    je n'arrive pas à arrêter la propagation

    <div id="menu4" class="menu4">
        <div id="smenu4" class="smenu4">
        </div>
    </div>
    const clicmenbot = document.getElementById("menu4");
    const contmenu4 = document.getElementById('smenu4');
    
    clicmenbot.addEventListener('mouseenter', function() {
    contmenu4.style.display='block';
    	//fermer
    	if(getComputedStyle(contmenu4).display === "block")
    	{
    		document.addEventListener('click', function(e) 
    		{
        
    			if (!contmenu4.contains(e.target)) {
    			contmenu4.style.display = 'none';
    			}
    		
    			console.log(getComputedStyle(contmenu4).display);
    			e.stopPropagation()
    		});
        
    	}
    });

    quand le display du contmenu4 est bien sur none: il ne devrait plus afficher le none dans la console pour chaque clic... en plus  il y a la condition et le stopPropagation qui ne fait rien.
    si quelqu'un voit quelle connerie j'ai fait.

    une autre question:

    quand il y a de la propagation: la ressource que sa prend, va sur la mémoire du navigateur client ou sur le serveur ? 

    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2024 à 14:29:37

      Salut,

      J'ai du mal à comprendre l'utilité de stopPropagation() car je ne vois pas bien ce qu'il faut arrêter comme événement.

      Essaye ceci :

      clicmenbot.addEventListener('mouseenter', function() {
          contmenu4.style.display='block';
          
          if(getComputedStyle(contmenu4).display === "block") {
              document.addEventListener('click', function(e) {
                  if (!contmenu4.contains(e.target)) {
                      contmenu4.style.display = 'none';
                  }
                  console.log(getComputedStyle(contmenu4).display);
              });
          }
      });
      



      • Partager sur Facebook
      • Partager sur Twitter
        6 avril 2024 à 9:48:21

        salut,

        pareille à chaque clic externe au div id menu4, la console log indique encore les clics alors qu'il ne devrait plus rien indiquer car le display = none.

         stopPropagation(), stopImmediatePropagation()   ce n'est pas pour arrêter un évènement, mais ça ne fait rien....comprend pas

        • Partager sur Facebook
        • Partager sur Twitter

        arret propagation

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown