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.