Rechercher : dans
Par :

Javascript setInterval probleme avec "this&qu

Dernière réponse le 22 déc 2008 à 13:34:20 Grew, le 22 déc 2008 à 00:01:46 
 Signaler ce message aux modérateurs

Bonjour,
J'essai de faire un petit script qui effectue un fade de couleur sur le fond d'un div lors du passage de la souris.

Voici mon code:

        var mestds=document.getElementsByTagName('td');
	val= 0;
	
	
	
	function degrade(val,zis)
	{
	if(zis==null){zis=this}
		newVal = val + 1;
		if(newVal <= 255)
		{

			zis.style.backgroundColor="rgb(200,200,"+newVal+")"
			var timer = setInterval('degrade(newVal,zis);', 40);
		}
		else
		{
		clearInterval(timer);
		newVal = 500;
		} 
	}
	
	
	for(i=0; i<mestds.length ; i++)
	{
		mestds[i].onmouseover=degrade(val,zis)
	}
	


Le problème est au niveau du "zis.style.backgroundColor="rgb(200,200,"+newVal+")" ", la console d'erreur me dit que zis.style est not defined.

Pourtant, ce code marche:

        function fade_color()
	{
		
		this.style.backgroundColor='rgb(200,200,30)'
	}	

        for(i=0; i<mestds.length ; i++)
	{
		mestds[i].onmouseover=fade_color
	}


Pouriez vous m'expliquer ou est mon erreur?
Merci d'avance pour votre aide.
Configuration: Windows Vista
Firefox 3.0.5

Meilleures réponses pour « Javascript setInterval probleme avec "this&qu » dans :
YouTube - Vous avez désactivé JavaScript VoirProblème Lorsque vous naviguez sur certains sites, tels que YouTube, ceux-ci affichent le message d'erreur suivant : Vous avez désactivé JavaScript ou bien vous possédez une ancienne version d'Adobe Flash Player. Téléchargez la dernière version...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...

1

 Grew, le 22 déc 2008 à 13:34:20

Deuxieme petit probleme du même type, j'ai essayé de faire le même programme mais sans utiliser le this, alors ça donne ça:

       function lance()
	{
		val=255
		test()
	}
	
	function test()
	{		
		var timer = setInterval("if(val >=0) { div1.style.backgroundColor='rgb(255,255,'+val+')'; val-=1; }else{ clearInterval(timer);} div1.innerHTML=val; ", 1);
	}	
	
	div1.onmouseover=lance


Quand mon curseur passe sur la div1, le fade se fait bien, mais lorceque je repasse une deuxieme fois le curseur sur le div1, le fade se fait mais deux fois plus rapidement que la premiere fois, idem pr la troisième fois, etc..
Je pense que c'est un probleme avec le cleearInterval(), ai-je raison? que dois-je faire pour réparer ce probleme?

Répondre à Grew