Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 17h18   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 66
Points : 12
Points : 12
Par défaut slidetoggle et modifier texte conditionnellement dans callback

Bonjour,

J'utilise la fonction slidetoggle qui au click sur un lien m'affiche ou me cache une div qui contient les commentaires d'un article. Cela fonctionne parfaitement mais je souhaite modifier le texte du lien : quand les commentaires sont cachés je souhaite qu'il soit affiché "Afficher les commentaires" et "Masquer les commentaires" lorsque les commentaires sont visibles.

Mon code :
Code :
1
2
3
4
5
 $(".comments_header").click(function(){
 
             $(this).next('#comments').slideToggle('500', function() {});
 
        });
HTML:
Code :
1
2
<h4 class="comments_header"><a href="#">Afficher les  commentaires</a></h4>
                    <div id="comments">Ici s affichent les commentaires</div>
J'arrive à changer le texte du lien avec le code suivant
Code :
1
2
 
 $('a:first', this).text("Masquer les commentaires");
Il faudrait que je puisse tester si le bloc est affiché ou non.
vince351 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 18h43   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 001
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 001
Points : 45 077
Points : 45 077
Code :
1
2
3
4
5
 $(".comments_header").click(function(){
 
             $(this).html( ($(this).html()=="Afficher les  commentaires")?"Masquer les commentaires":"Afficher les  commentaires") ).next('#comments').slideToggle('500');
 
        });
ou

Code :
1
2
3
4
5
 $(".comments_header").click(function(){
 
             $(this).next('#comments').slideToggle('500',function(){($(this).html()=="Afficher les  commentaires")?"Masquer les commentaires":"Afficher les  commentaires") });
 
        });
ou

Code :
1
2
3
4
5
 $(".comments_header").click(function(){
 
             $(this).next('#comments').slideToggle('500',function(){($(this).next().is(":visible")?"Masquer les commentaires":"Afficher les  commentaires") });
 
        });
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 16h28   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 66
Points : 12
Points : 12
Merci,
la première solution fonctionne mis à part que je perd le lien, j'ai essayé :


Code :
 $(this).html( ($(this).html()=="<a href='#'>Afficher les  commentaires</a>")?"<a href='#'>Masquer les commentaires</a>":"<a href='#'>Afficher les  commentaires</a>").next('#comments').slideToggle('500');
Mais cela ne fonctionne plus. La solution ne doit pourtant pas être bien loin.
vince351 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 19h00   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 001
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 001
Points : 45 077
Points : 45 077
Code :
1
2
3
4
5
6
7
8
9
<h4 class="comments_header"><a href="#" id="label">Afficher les  commentaires</a></h4>
                    <div id="comments">Ici s affichent les commentaires</div>
 
 $(".comments_header").click(function(){
 
             $('#label').html( ($('#label').html()=="Afficher les  commentaires")?"Masquer les commentaires":"Afficher les  commentaires") )
$(this).next('#comments').slideToggle('500');
 
        });
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h28.


 
 
 
 
Partenaires

Hébergement Web