2010-01-28 4 views
0

Je crée un site qui nécessite que la zone de contenu du site disparaisse lorsque l'utilisateur clique sur un btn. Le btn est une simple balise d'ancrage. J'ai reçu de l'aide d'autres utilisateurs de S.O à ce sujet et j'ai presque réussi à le faire fonctionner correctement. Le problème que j'ai est qu'il ne disparaîtra pas. Voici le code jquery:Problème jQuery fadeOut

$("#show-background").click(function() { 
if ($("#content-area").hasClass("bg_hidden")){ 
    $("#content-area") 
    .removeClass("bg_hidden") 
    .stop() 
    .fadeIn("slow"); 
    $(this).text("Show Background"); 
      } 
else{ 
    $("#content-area") 
    .addClass("bg_hidden") 
    .stop() 
    .fadeOut("slow"); 
    $(this).text("Show Text"); 
      } 
}); 

se trouve un échantillon ici www.nicklansdell.com/sample/services.html~~MD~~aux~~singular~~1st Je me demande si quelqu'un peut aider? Merci d'avance.

Répondre

0

Pourquoi ne pas simplement utiliser la bascule?

$("#show-background").click(function() { 
    $("#content-area").animate({opacity: 'toggle'}, 'slow'); 
}); 
+0

'fadeToggle' n'est pas dans l'API jquery. –

+0

La raison pour laquelle on m'a donné cette méthode était de la décomposer pour que je puisse comprendre comment cela fonctionne, ce que bien sûr maintenant je fais maintenant :) Quand j'essaie votre méthode, tout simplement ne fonctionne pas. Je me demande si la bibliothèque d'outils Jquery est en quelque sorte en conflit avec ce code? – mtwallet

+0

J'ai édité pour animer c'est une librairie dans le noyau cela devrait fonctionner. – RJD22

0

Essayez de fanent séparément de addClass:

$("#content-area").fadeOut("slow"); 

BTW, vous pouvez vérifier le texte du bouton dans la if au lieu de l'existence de la classe ...

+0

Salut, j'ai essayé de le faire mais encore une fois cela n'a pas fonctionné. Pourrait-il y avoir un conflit entre mon code ici et la bibliothèque d'outils jquery que j'utilise? – mtwallet

0

J'ai fait quelques essais sur votre page avec firebug et ne pouvait pas venir avec ce qui est rompre l'appel fadeOut.

Si vous avez besoin d'une solution de contournement, vous pouvez faire:

if ($("#content-area").hasClass("bg_hidden")){ 
    $("#content-area") 
    .removeClass("bg_hidden") 
    .stop() 
    .children().fadeIn("slow"); 
    $(this).text("Show Background"); 
}else{ 
    $("#content-area") 
    .addClass("bg_hidden") 
    .stop() 
    .children().fadeOut("slow"); 
    $(this).text("Show Text"); 
} 

Fondu/tous les enfants ont travaillé sur votre page.

Il s'agit d'une de contournement, pas une solution.

+0

Merci pour l'Alex. Lorsque j'essaie cela et que je le prévisualise, la zone de contenu div # est masquée au début et le btn ne fonctionne pas. Des idées ce que je fais mal? – mtwallet