11548 sujets

JavaScript, DOM et API Web HTML5

Bonjours, je suis dans la derniere ligne droite de la realisation de mon site perso, je suis en phase de correction et de perfectionnisme, j'ai des lacunes en jquery.

Ma question est la suivante, j'ai mis en place une div qui apparait a l'aide de l'action slidetoggle en appuyant que le bouton 'about', tout fonctionne comme il faut, le soucis c'est que j'aimerai qu'on puisse faire le chemin inverse, la faire disparaitre, en appuyant n'importe ou sur le body, mais je veux que cette action ne marche qu'a la fermeture et non a l'ouverture.


$(document).ready(function () {
    $('#about').click(function () {
        $('#info').slideToggle('slow');
    });
    
});


http://www.julienparrino.com/work/


merci Smiley biggrin
Modifié par parr (10 Jan 2012 - 17:22)
j'ai essayé ceci qui peut rendre pas mal

$(document).ready(function () {
    $('#about').click(function () {
        $('#info').slideToggle('slow');
		$("#about").html("Close");
		
    });
    
});


mais une fois que "Close" a remplacer "About", impossible de faire machine arriere, y'a pas une ligne qui permettrait d'inverser une action jquery?
$(document).ready(function() {
    var info = $("#info");
    $(document).click(function(e) {
      if (info.is(":visible")) info.slideUp();
      else {
        if ($(e.target).is("#about")) info.slideDown();
      }
    });
});
Merci Benjamin, j'aimerai ajouter ceci pour plus de lisibilité:

$("#about").html("Close");


comment je peux l’intégrer a ton code, de façons a ce que le contenu redevienne comme avant au click ailleurs?
j'ai trouvé!

$(document).ready(function() {

    var info = $("#info");

    $(document).click(function(e) {

      if (info.is(":visible")) info.slideUp() ;
	  if (info.is(":visible")) $("#about").html("About");

      else {

        if ($(e.target).is("#about")) info.slideDown();
		if (info.is(":visible")) $("#about").html("Close");

      }

    });

});