Bonjour,
J'ai réussi à faire un genre de menu déroulant sur le click d'un bouton.
Le menu déroulant est supprimé lorsqu'il perd le focus et lorsqu'il re-clique sur ce bouton.
Le problème vient lorsque je clique sur le bouton pour fermer ce menu déroulant : il supprime bien le menu déroulant mais se ré ouvre dessuite.C'est normal, l'ouverture du menu est conditionné à l event click.
Donc j 'ai pensé à supprimer son event lorsque j'ouvre le menu et à le réactiver à sa fermeture.Mais si je fais cela sans passer par un timeout , le menu déourlant se réouvre si je veux le fermer.

Pensez vous à une meilleur solution que celle proposée ci-dessous ?


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 function OpenPopupSelection(elt)
        {
            if(elt.attr("expanded") == "false")
            {
                elt.focus();
                elt.attr("expanded","true")
                elt[0].onclick= function(){};
                elt.addClass("headerSelectionClick");
                elt.blur(function(){ClosePopupSelection($(this));});
                var build="<div class=\"popupHeaderSelection\"><a>Tous</a><a>Aucun</a><a>Dernière position</a></div>";
                elt.append(build);
            }
        }
 
        function ClosePopupSelection(elt)
        {
            setTimeout(function(){elt[0].onclick=function(){ C($(this)); };},300);
 
            elt.unbind("blur");
            elt.attr("expanded","false");
            elt.removeClass("headerSelectionClick");
            elt.find("div").remove();
        }