Quel est le meilleur moyen de montrer une div quand on clique sur un bouton puis de le cacher avec un bouton de fermeture?
Mon code Jquery est comme suit:
$(".imageIcon").click(function(){
$('.imageShowWrapper').css("visibility", 'visible');
});
$(".imageShowWrapper").click(function(){
$('.imageShowWrapper').css("visibility", 'hidden');
});
sauf que le problème que je rencontre est qu'il se ferme automatiquement sans aucun clic. Il charge tout ok, affiche pendant environ 1/2 seconde, puis se ferme. Des idées?
Vous pouvez utiliser les méthodes show
et hide
:
$(".imageIcon").click(function() {
$('.imageShowWrapper').show();
});
$(".imageShowWrapper").click(function() {
$(this).hide();
});
Selon vos besoins, je pense que ce dont vous avez besoin est aussi simple que cela: http://jsfiddle.net/linmic/6Yadu/
Toutefois, l’utilisation de la visibilité diffère de l’utilisation de la fonction afficher/masquer, détails sanglants: Quelle est la différence entre visibilité: masqué et affichage: aucun?
Une autre option:
$(".imageIcon, .imageShowWrapper").click(function() {
$(".imageShowWrapper").toggle($(this).hasClass('imageIcon'));
});
Vous pouvez également utiliser fadeToggle
et slideToggle
$(".imageIcon, .imageShowWrapper").click(function(){
$('.imageShowWrapper').toggle();
});
Vous obtiendrez une transition plus douce en utilisant les méthodes de fondu:
var imageIcon = $(".imageIcon"),
imageShowWrapper = $(".imageShowWrapper");
imageIcon.on("click", function(){
imageShowWrapper.stop().fadeIn();
});
imageShowWrapper.on("click", function(){
$(this).stop().fadeOut();
});