Salut tout le monde,

alors voilà, il y a longtemps j'avais fait un code de menu au clic du genre dropdown sauf qu'il ne se ferme pas en cliquant à l’intérieure :D

Aujourd'hui, j'ai envie de modifier le code pour le rendre plus utilisable car dans mon code, il aller fonctionner sur une div pas plus après il faut copier plusieurs fois les codes.

Et donc, j'ai décider de retirer une partie du code qui est :

$('#navigation-mun').click(function(event){
//event.stopPropagation();
});

pour pouvoir l'appliquer directement sur le click du html.

du genre :

$('html').click(function(e) {
  if($(e.target).hasClass('opendrop')){
    // Ne pas fermer si les clic son dans la div
    console.log('OUI');
  }  else
  {
    $(this).find('.opendrop').css('display', 'none');
    $('#mun-racord').removeClass('actifDropdown');
  }
});

Comme vous pouvez le voir, j'utilise e.target, mais le problème si je clique sur un a dans la div, ceci n'est pas dans le if mais dans le else, donc, je voudrais bien dire tout le contenue de la div.

Merci de vos réponse.

Cordialement;

3 réponses


remy76690
Auteur
Réponse acceptée

Merci Huggy, après reçu une réponse sur un autre site.
J'utilise ceci :

$('html').click(function(e) {
        if($(e.target).hasClass('opendrop') || $(e.target).parents('.opendrop').length==1){
            return false;
        }
        else
        {
            $(this).find('.opendrop').css('display', 'none').removeClass('opendrop');
            $(document).find('.actifDropdown').removeClass('actifDropdown');
        }
    });

Le code fonctionne aussi bien.

Salut,

Tu peux nous la refaire en français ? Parce que là on ne comprend pas ce que tu veux faire.

Bonjour Remy,
je te conseille de regarder la vidéo de Grafikart sur Jquery.on