Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bloquer menu déroulant sur un clic

Sujet résolu
    21 juillet 2010 à 9:50:29

    Bonjour,

    J'ai un menu déroulant au survol de la souris géré en CSS avec les histoires de :hover. Dans mon menu déroulant, j'ai un input de recherche. Je voudrais faire en sorte que lorsque l'utilisateur clic une fois sur l'input le menu se bloque et que même si la souris sort du menu il reste affiché. Lorsque l'utilisateur re-clic une deuxième fois soit sur le même input (le plus simple je suppose), soit ailleurs sur la page, le menu disparaisse.

    J'ai réussi à faire ces deux évènements en utilisant la fonction "toggle()" de jQuery et en jouant sur les display block ou none. Le soucis c'est qu'une fois le menu caché il ne revient jamais alors que je voudrais qu'il se ré-affiche quand la souris repasse sur le menu.

    J'ai essayé avec la propriété CSS visibility sans succès. J'ai aussi tenté de créer des évènements jQuery sur le "mouseenter" et "mouseout" sans succès aussi.

    Je vous met mon code javascript au cas où:
    $("#nav input[name*='VillePharma']").toggle(
      function () {
       $("#nav #form").css('display', 'block');
      },
      function () {
        $("#nav #form").css('display', 'none');
      }
    );
    



    Si quelqu'un avait une piste..

    Asu'.
    • Partager sur Facebook
    • Partager sur Twitter
      21 juillet 2010 à 10:11:12

      Je verrai bien une astuce, c'est pas forcement le mieux, mais ca peut marcher :

      $("#nav input[name*='VillePharma']").mouseover(function() {
                $("#nav input[name*='VillePharma']").click();
      }
      


      Le click déclenchera le toggle normalement ;)
      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2010 à 10:30:36

        Pas bête, il me bloque bien le menu au survol mais quand il disparait il ne revient toujours pas :( .
        • Partager sur Facebook
        • Partager sur Twitter
          21 juillet 2010 à 10:41:40

          Ce serait possible de voir la page online? La je visualise pas très bien le truc qui cloche :honte:
          • Partager sur Facebook
          • Partager sur Twitter
            21 juillet 2010 à 10:53:27

            Pour le moment j'ai réussi à faire à peu près ce que je voulais.

            Voici le code modifié :
            $("#nav input[name*='VillePharma']").click(
              function () {
               $("#nav #form").css('display', 'block');
              });
              $("#nav input[name*='VillePharma']").focusout(
              function () {
                $("#nav #form").css('display', '');
              }
            );
            


            J'ai donc changé les évènements et vidé la propriété display.

            A voir si avec l'ajout de l'auto-complétion jQuery ça marche toujours *prie*.

            Merci de ton aide et le site sera bientôt en ligne donc tu pourras visualiser ^^ .

            Asu'.
            • Partager sur Facebook
            • Partager sur Twitter

            Bloquer menu déroulant sur un clic

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown