Bonjour à tous, c'est la première fois que je post sur ce forum, car d'habitude je réussis à trouver la réponse à mes questions, mais cette fois-ci je n'y parviens tout simplement pas! Sur ma page html, il y a des une série de lien avec des ID différents allant de 4 à plusieurs tout dépendant la page se nommant "image1", "image2", etc.
Ces liens ont pour but de faire changer l'image actuellement affiché par une autre avec une transition en fondu. Donc mon code ici à pour but d'associer l'événement "click" à chacune de ces images dépendemment si elle existe sur la page ou non. Il est très facile de créer à chaque lien son addEvent indépendemment, mais ça n'a rien d'optimal. C'est pour cette raison que je veux associer le "click" dans une boucle.
Mon problème est que le addEvent fonctionne seulement quand je clique sur le lien et non a l'initialisation de ma page, ce qui a pour effet que seulement le dernier fonctionne.
Comment puis-je associer mon addEvent à une liste d'élément qui varie à chaque page?
Merci beaucoup pour votre temps et votre aide!
Voici le code :
var el = $('myElement');
var el2 = $('myElement2');
el.style.opacity=1;
//-vertical
var myVerticalSlide = new Fx.Slide('vertical_slide');
for(cpt=1;;cpt++){
if(document.getElementById('image'+cpt)){
$('image'+cpt).addEvent('click', function(e){
var maSrc=cpt+".png";
if (status[myVerticalSlide.open]=="open"){
if(el.style.opacity==1){
e.stop();
el2.src=maSrc;
el.fade(0);
el2.fade(1)
}else{
e.stop();
el.src=maSrc;
el.fade(1);
el2.fade(0)
}
}else{
e.stop();
el.src=maSrc;
myVerticalSlide.slideIn();
}
})
}else{
//alert('Ca sort du loop au cpt'+cpt)
break;
}
}
Modifié par mathg16 (09 Dec 2008 - 23:42)
Ces liens ont pour but de faire changer l'image actuellement affiché par une autre avec une transition en fondu. Donc mon code ici à pour but d'associer l'événement "click" à chacune de ces images dépendemment si elle existe sur la page ou non. Il est très facile de créer à chaque lien son addEvent indépendemment, mais ça n'a rien d'optimal. C'est pour cette raison que je veux associer le "click" dans une boucle.
Mon problème est que le addEvent fonctionne seulement quand je clique sur le lien et non a l'initialisation de ma page, ce qui a pour effet que seulement le dernier fonctionne.
Comment puis-je associer mon addEvent à une liste d'élément qui varie à chaque page?
Merci beaucoup pour votre temps et votre aide!
Voici le code :
var el = $('myElement');
var el2 = $('myElement2');
el.style.opacity=1;
//-vertical
var myVerticalSlide = new Fx.Slide('vertical_slide');
for(cpt=1;;cpt++){
if(document.getElementById('image'+cpt)){
$('image'+cpt).addEvent('click', function(e){
var maSrc=cpt+".png";
if (status[myVerticalSlide.open]=="open"){
if(el.style.opacity==1){
e.stop();
el2.src=maSrc;
el.fade(0);
el2.fade(1)
}else{
e.stop();
el.src=maSrc;
el.fade(1);
el2.fade(0)
}
}else{
e.stop();
el.src=maSrc;
myVerticalSlide.slideIn();
}
})
}else{
//alert('Ca sort du loop au cpt'+cpt)
break;
}
}
Modifié par mathg16 (09 Dec 2008 - 23:42)