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 06/12/2010, 17h29   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 3
Points : 2
Points : 2
Par défaut Affichage de contenu avec accordeon

Bonjour,

je suis en train de réaliser une page qui comporte 5 ou 6 items qui s'affichent ou se cachent avec le principe "accordeon" en Ajax/Jquery.

Lorsqu'un Item est ouvert, il peut y avoir ensuite une action client qui va passer des paramètres PHP en GET.

je précise que dans ma fonction javascript j'ai défini l'ouverte du premier item par défaut grâce au filtre "first":
Code :
$("#accordeon #objet_deroulant:first").show();
Mon problème : si le client est position sur l'item n° 2 (tous les autres sont donc cachés), et qu'il génère une action qui relance l'url pour passer un paramètre, la page est rechargée (normal) mais du coup la page se ré-ouvre sur l'item n° 1 à cause du filtre "first". Je souhaiterais que mon accordeon se ré ouvre sur le dernier déroulant actif. Je ne vois pas comment je peux changer la valeur de mon filtre pour qu'il mémorise le dernier item ouvert ?
jer2701 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2010, 17h46   #2
Membre du Club
 
Inscription : juin 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 44
Points : 55
Points : 55
Salut,
savais-tu qu'il existe un "accordion" dans jQuery UI ?
Tu pourrais l'utiliser...

Pour ton problème, serait-il possible de faire une condition sur le paramètre passé dans l'URL pour pouvoir activer le bon ?

Ou sinon, tu pourrais utilisé AJAX pour ne pas avoir à recharger toute la page, mais seulement la partie qu'il faut.
De cette façon, l'"accordion" devrait rester dans la bonne position...

À plus !
antoyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 12h59   #3
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
salut,

si en le couplant à un script php tu pourrais avoir en SESSION la valeur de l'item à laisser ouvert et sinon par défaut le "first"

Bonne continuation
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 19h17   #4
Invité de passage
 
Inscription : décembre 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 3
Points : 2
Points : 2
merci pour vos réponses (au passage c'est étrange je n'ai pas reçu d'email me disant que j'avais des réponses) .. donc j'ai cherché et j'ai finalement fini par trouvé (parce que quand on veut on peut

pour tous ceux qui cherchent voici donc la solution :

1 - (antoyo avait raison) il s'agit de passer un paramètre en GET (dans l'url) pour indiquer le menu actif
2 - en php (en fonction du paramètre passé dans l'url) : faire ajouter une classe 'open_at_load' (par exemple) si le menu doit être actif ou 'close_at_load' (par exemple) si le menu ne doit pas être actif. Théoriquement il n'y a qu'un menu actif à la fois . Cette classe doit être ajouter à l'élément (<div> ou <li> qui s'ouvre et se ferme).
3 - Dans le javascript il suffit de paramétrer ce qui doit être ouvert et fermé avec le code suivant :
Code :
1
2
3
 
$("#accordeon #objet_deroulant:not(.open_at_load)").hide();		
$("#accordeon #objet_deroulant:not(.close_at_load)").show();
Voili voilou
jer2701 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 15h54.


 
 
 
 
Partenaires

Hébergement Web