Bonsoir tout le monde,

Tout d'abord je tiens a dire que je suis d�butant en Javascript, merci d'�tre indulgent

Voil�, j'aimerai me lancer dans la cr�ation d'une fonction (j'ai essay� d'�crire une classe mais je n'ai pas encore les bonnes notions pour en faire en JavaScript).

Je vous explique tout d'abord mon code HTML...

Cela va �tre du genre :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
<div id="portefolio">
<div id="picture_1" class="picture_portefolio"></div>
<div id="content_2" class="content_portefolio"></div>
<div id="picture_2" class="picture_portefolio"></div>
<div id="content_2" class="content_portefolio"></div>
<div id="picture_3" class="picture_portefolio"></div>
<div id="content_2" class="content_portefolio"></div>
</div>
Lors du clique sur un picture_[0-9*] j'aimerai qu'il r�cup�re le nombre pour ouvrir l'�l�ment content_[nombre_re�u]

Sachant que j'aimerai que quand je clique sur un autre �l�ment, il me ferme celui qui est ouvert.

Le probl�me pour moi est enfaite de r�cup�rer le nombre d�rri�re et de lister les �l�ments d�j� ouvert.

Je pense que pour pouvoir lister tout les �l�ments d�j� ouvert il faut utiliser Event.findElement()...


Voil�a ce que j'ai fais :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var Portefolio = Class.create();
 
Portefolio.prototype = {
	initialize : function(element) {
		this.element = $(element);
	},
 
	getInit : function() {
 
		Event.observe('picture_[0-9*]', 'click', function()
		{
			content_open = Event.findElement(this.element, 'content_');
			if(content_open != null)
			{
				Effect.BlindUp(content_open.tagName);
			}
			else
			{
				nbr = ??;
				id_content = 'content_' + nbr;
				Effect.toggle(id_content, 'slide');
				if(id_content.visible())
				{
					Effect.ScrollTo(id_content);
				}
			}
 
		}
 
	}
 
 
}
 
Event.observe(window,'load',function(){ new Portefolio('portefolio'); });
Pouvez vous me donner un coup de main s'il vous plait ?

Merci d'avance,
Cordialement