toggle() plante pourquoi?
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 de
Code:
1 2
| function(){ //réglage de la hauteur en auto
if(this.wrapper.getStyle('height') != "0px"){this.wrapper.setStyle('height', 'auto'); } |
mais comment faire?
Code de la fonction
Code:
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(); |
Merci pour votre aide
cedric