Bonjour,
J'essaye de faire quelque test de code javascript (un slider) et je rencontre un problème.
Voici mon code:
Au premier passage tous va bien. Le alert(this) affiche object object. Une fois la fonction rapeller, le alert(this) affiche object window.
Je ne comprends pas pourquoi il y a un changement ?
Merci beaucoup pour votre aide.
J'essaye de faire quelque test de code javascript (un slider) et je rencontre un problème.
Voici mon code:
var diapo ={
base: document.getElementById('slide_img'),
taille: '',
cpt:'',
img: '',
max: '',
style:'',
valeur:'',
speed: -200,
calcul: function(){
with(this){
img = base.getElementsByTagName('img');
taille= img[0].offsetWidth;
cpt = taille;
max = img.length*taille+1;
style = getComputedStyle(base,null).marginLeft || base.currentStyle.marginLeft;
valeur = parseInt(style,10);
}
},
anim: function(){
alert('Valeur vaut '+diapo.valeur);
with(this){
alert('Valeur vaut aprés le this '+diapo.valeur);
alert(this);
if(Math.abs(parseInt(valeur,10)) < max && taille >0){
alert(valeur);
valeur += speed;
base.style.marginLeft= valeur+'px';
cpt -= speed;
setTimeout(anim, 50);
alert(valeur);
}
else{
cpt= taille;
setTimeout(anim, 2500);
}
}
},
init: function(){
with(this){
calcul();
anim();
}
}
}
diapo.init();
Au premier passage tous va bien. Le alert(this) affiche object object. Une fois la fonction rapeller, le alert(this) affiche object window.
Je ne comprends pas pourquoi il y a un changement ?
Merci beaucoup pour votre aide.