Bonjour,
J'ai un problème avec toggle(), le script ci-dessous fonction bien, il ouvre le ul souhaité et remplace bien l'image voulu.
1) Par contre lorsqu'on clic une seconde fois sur img, le ul se referme mais l'image n'est pas de nouveau remplacé !!
2) Lorsqu'on fait plus fois la manip en cliquant sur l'image, la hauteur reste à 0
Le bug vient à priori demais comment faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function(){ //réglage de la hauteur en auto if(this.wrapper.getStyle('height') != "0px"){this.wrapper.setStyle('height', 'auto'); }
Code de la fonction
Merci pour votre aide
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 var plier_deplier=function() { $$('#sortable-list img').each(function(el) { el.addEvent('click', function() { var ul=el.get('id').substr(3); var limodif=el.get('id').substr(5); var status = { 'false':new Element('img', {'id':"img"+ul,'src':"img/Expand.png",'style':"width:16px;height:16px;float:left"}), 'true': new Element('img', {'id':"img"+ul,'src':"img/Collapse.png",'style':"width:16px;height:16px;float:left"})}; var myFx = new Fx.Slide(ul,{ duration:500, onComplete: function(){ //réglage de la hauteur en auto if(this.wrapper.getStyle('height') != "0px"){this.wrapper.setStyle('height', 'auto'); } $('img'+ul).destroy(); var id='t'+$(document.body).getElement('li[alt='+limodif+']').get('id').substr(5); status[myFx.open].inject($(id), 'before'); //inject la nouvelle image plier_deplier();// redéfinir addEvent pour prise en compte } }).toggle(); }); }); } plier_deplier();
cedric
Partager