2010-03-30 4 views
3

J'ai un effet show/hide qui fonctionne mais j'ai juste besoin de pouvoir l'utiliser plusieurs fois dans une page. Actuellement, il bascule tous les éléments. Je n'arrive pas à comprendre comment le faire.jquery bascule pour fonctionner dans plusieurs instances

J'espère que vous pouvez aider.

http://pastebin.me/29328e556caf53e9a1925030d65b864b

+0

peut vous envoyer un code sur la façon dont vous afficher et masquer les éléments? –

+1

suffit de cliquer sur «modifier le code» à droite dans pastebin. – mark

+0

juste je vous avais déjà dit que vous deviez faire un pour chaque boucle sur votre post précédent sur ce même problème – mcgrailm

Répondre

2

Vous pouvez modifier votre fonction un peu à cela, ça va marcher sur chaque <ul> indepdently:

$('.facet ul').each(function() { 
    if($(this).children('li:gt(9)').hide().length === 0) return; 
    $(this).append(
    $('<li id="toggler">More</li>').toggle(function() { 
     $(this).text('Hide').siblings().show(); 
    }, function() { 
     $(this).text('More').siblings('li:gt(9)').hide(); 
    })); 
});​ 

See a working demo here

Avant, il obtenait une li plus de 9, vous voulez faire ceci par<ul> élément avec .each() comme l'exemple ci-dessus.

+0

Gotcha. Brillant. Maintenant, j'ai juste besoin d'intégrer cela avec le code de menu en expansion ci-dessous - devrais-je créer une nouvelle question? http://pastebin.me/03b685f586fef84193b5fd72e815255d – mark

+0

@mark - Pour les futurs googleurs qui trouveront cela, s'il vous plaît, faites et commentez où c'est ici, je répondrai si personne d'autre ne le fait bientôt. –

+1

fera l'affaire. Bien que je ne puisse pas encore publier 2 url. – mark

0

J'ai enlevé quelques bits pour simplifier, mais vous pouvez voir ici pour une implémentation en cours ... Pour garder les togglers en tant qu'éléments LI, vous devrez développer ceci pour cacher sélectivement les éléments frères - mais je suis un fan de la simplicité, donc je suggère de garder les bascules en dehors de l'élément que vous voulez montrer/cacher.

http://pastebin.me/7a7e139da8cad2b01593d895b668c17e

+0

Cela ne fait pas du tout ce que le script original a fait ... il veut cacher/montrer "plus", pas "tout". –

+0

oui, c'est plus quand il dépasse un certain nombre le 'plus' est affiché. et pas si c'est moins. Et puis pour que cela fonctionne dans un menu en expansion. Fondamentalement, un économiseur d'espace pour les sites typiques indexs cms comme: http://mikeyburton.com/ – mark