Hello voilà la sitation, je voudrai :

1 / que l'utilisateur fasse apparaître la div.sidebar, en cliquant sur un bouton qui a la class "maclass".

2/ Puis je veux cacher la div.sidebar lorsque l'utilisateur clique n'importe où en dehors de cet élément "div.sidebar"

Je m'y suis pris comme ceci, mais ça me cause des problèmes sur certains navigateurs. y at-il une façon de faire plus cool :) ?

// Au click sur l'élément la div qui a la class sidebar apparaît
                $(".maclass").click(function(event){
                   event.preventDefault();   
                   $('.sidebar').show();
                   event.stopPropagation();
                });

// Au clic n'importe où
// la div qui a la class sidebar disparaît         
     $(document).click(function(event) { 
    if($('.sidebar').is(":visible")) {
    if(!$(event.target).closest('.sidebar').length) {
        $('.sidebar').hide();
        }
    }        
});

Cette solution m'occasionne des problèmes sur certains version de certains navigateurs, comme opera, safari. Si vous avez une bonne solution je suis preneur :)

Merci d'avance.

1 réponse


Tu peux utiliser un callback il me semble bien .

$(".trigger").click(function(e){
    $(".sidebar").show();
},
$(".sidebar").hide();
);