Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/10/2008, à 18:27

trash--gamer

afficher/cacher un div en javascript

Voila le problème :  ça fait trois jours si ce n'est plus que j'essaie de faire ça : http://www.pokebip.com/pokemon/ (bonjour les références tongue) c'est à dire que lorsque l'on clique sur le titre de la news, le reste du message s'affiche. Bien entendu, j'ai trouvé plusieurs scripts sur internet, mais ils utilisent tous des ID. Donc, cela ne fonctionne pas étant donné que j('ai plusieurs news. Quelqu'un saurait faire ça?:D

Hors ligne

#2 Le 08/10/2008, à 18:55

abelthorne

Re : afficher/cacher un div en javascript

Déjà, je te suggère de regarder du côté de librairies JavaScript comm jQuery ou Prototype, qui simplifient la manipulation du DOM et évitent de se prendre la tête pour la compatibilité.

D'autre part, pour cibler un élément, il faut qu'il ait un ID. Il faudrait donc commencer par revoir le code qui génère ta liste de news pour rajouter un ID à chacune (basé sur le n° de la news, par exemple).
Ensuite, en JavaScript, il faudra intercepter l'événement "clic" sur un titre de news, récupérer son ID et manipuler le DIV avec l'ID en question.

Hors ligne

#3 Le 08/10/2008, à 19:48

Ploply

Re : afficher/cacher un div en javascript

Petite précision qui va dans le sens de ce que dit abelthorne :

Prenons un extrait du source de ton site référence tongue
L'ascension de Darkrai par ex.

<div class="index-news">
		<div class="index-news-titre">
			» <a href="javascript:blindSwitchFast('news1698');">L'ascension de Darkrai</a>
		</div>
		<div class="index-news-texte" id="news1698" style="display: none;">

----------

// "il faudra intercepter l'événement "clic" sur un titre de news, récupérer son ID et manipuler le DIV avec l'ID en question. "
// a href="javascript:blindSwitchFast('news1698');" >> c'est l'interception en question.
// ('news1698') l'ID de la news qui est transmise au script JS.
// La récupération et la manipulation du bloc texte se fait par du JS. blindSwitchFast qui appelle transmet ensuite au script pour plier et/ou déplier. Vois le code.

Tu note 2 choses, qu'elles sont dans des conteneurs, incluant eux-même plusieurs blocs. (titre, commentaires, datage, et le texte masqué (lui même structuré) en outre.
La seconde c'est que chaque news a un ID unique.

Contrairement à ce que tu demande, c'est justement par-ce qu'il y a plusieurs news qu'il faut les cibler.
Sans quoi, dans la théorie absolue, elle se déplieraient toutes lorsque tu clique sur une seule... disons ça pour faire simple.

Tu as donc 2 possibilités :
- regarder le script JS de ton site référence, et voir comment il fonctionne.
De là peut-être en pondre un qui correspond plus à tes attentes et/ou plus universel pour peu que cela soit possible.
- Utiliser bêtement le script (qui inclut pas mal d'autres choses donc le nettoyer avant n'est pas du luxe).

Dans tous les cas corriger ton code xhtml et ajouter un ID à chaque news.

Dernière modification par Ploply (Le 08/10/2008, à 19:52)


Lucid - Gnome

Hors ligne