2011-09-01 3 views
0

J'ai un certain nombre de marques que j'affiche, mais je veux afficher seulement le premier 5 et ai vu plus de marques de texte. J'ai tout mis en place correctement et la fonctionnalité est très bien, mais après le clic, je voudrais changer le texte de voir plus de marques pour voir moins de marques. J'ai essayé le texte interne, mais cela modifie le texte et le code HTML, donc mon bouton ne fonctionne plus.jquery changer le texte sur le problème de clic

J'apprécie toute aide.

Merci.

EDIT:

Les morebrands a le style d'affichage en ligne: none;

+0

Où est l'élément avec l'id 'morebrands'? – Shef

+0

Ce sont les marques cachées. Dois-je le changer en $ (". Showmorebrands")? –

Répondre

4

Essayez cette

$(function(){ 
    $("li.showmorebrands a").click(function(){ 
     var $this = $(this); 
     $('#morebrands').toggle('fast', function() { 
     if($('#morebrands').is(":visible")){ 
      $this.html("Show More Brands"); 
     } 
     else{ 
      $this.html("Show Less Brands"); 
     } 
     }); 
    }); 
}); 
+0

Typo 'visisble'. – Shef

+0

Merci @shef j'apprécie !! – ShankarSangoli

0

Essayez:

$('#morebrands').toggle('fast', function() { $(this).text('Show less brands') }); 
+0

C'est faux. Dans la méthode de rappel à bascule 'this' pointera vers' # morebrands' et non l'ancre. – ShankarSangoli

+0

qui change chaque marque cachée pour "Afficher moins de marques" –

+0

Si vous modifiez votre réponse, je peux supprimer le vote vers le bas. – ShankarSangoli

1

je ferais quelque chose comme ceci:

<li style="font-size:12px; margin-left:2px;" class="showmorebrands"> 
    <a>Show More Brands</a> 
</li> 
<script type="text/javascript"> 
    $(function() { 
    var $moreBrands = $('#moreBrands'), 
     $showHideBrands = $('.showmorebrands a'); 

    $showHideBrands.click(function(event) { 
     $moreBrands.toggle(
     'fast', 
     function() { 
      $showHideBrands.text(
      $moreBrands.is(':visible') ? 'Show Less Brands' : 'Show More Brands'); 
     } 
    ); 
     event.preventDefault(); 
    }); 
    }); 
</script> 
+0

Vous êtes rapide, je l'écrivais. C'est la bonne façon de le faire. Séparez la présentation de la fonctionnalité. – Shef

+0

hmm, ça marche bien, mais quand je clique dessus après que ça change pour "montrer moins de marques" ça ne change pas pour montrer plus de marques –

+0

@FishBasketGordo: Essayez d'ajouter un 'preventDefault()'. – Shef

Questions connexes