Rechercher : dans
Par :

Problème JS

Dernière réponse le 11 nov 2009 à 09:02:36 kalimbra, le 10 nov 2009 à 15:53:20 
 Signaler ce message aux modérateurs

Bonjour,

je suis pas un pro du javascript. J'ai récupéré un petit script sur internet que j'essaye d'adapter pour le rendre 'dynamique', afin de l'utiliser plusieurs fois dans la page.

Il s'agit d'un petit scroller (j'aurais besoin de 4 instances sur une page)

Voila mon code actuel. J'obtiens l'erreur "Objet is null" et pourtant en vérifiant avec des document.write, j'arrive bien à obtenir l'id et le style.top.

<script language="javascript">

var Timer;
var Pas = 3;

function moveLayer(Sens,Contenu) {

    Objet = document.getElementById(Contenu);


   if(parseInt(Objet.style.top) + (Pas*Sens) > 0)

  Objet.style.top = "0px";

   else

   Objet.style.top = (parseInt(Objet.style.top) + (Pas*Sens)) + "px";

   Timer = setTimeout("moveLayer(" + Sens + ");", 50);

   }
   
   </script>


si l'un de vous à une petite idée ....
Configuration: Windows XP
Firefox 3.5.5

Meilleures réponses pour « Problème JS » dans :
Javascript - Les événements Voir Qu'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 - Les variables Voir Le 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,...
Javascript - Introduction au langage Javascript Voir Qu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
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 - 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 - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

monkey_monk, le 10 nov 2009 à 16:37:29

Commence déjà par mettre des { et } à tes if et else... ensuite, est-ce que ton setTimeout fonctionne ?

Parce qu'il me semblait que pour passer un paramètre à une fonction via le setTimeout (et setInterval) il fallait utiliser une function anonyme, comme cà :

var timer = setTimeout(function(){moveLayer(Sens);},50);


Non ? [Monkey Monk]
That's all folks !

Répondre à monkey_monk

2

kalimbra, le 10 nov 2009 à 16:44:56

En tout cas l'erreur se produit avant le Timeout..

j'ai un "objet is null " à la ligne 10, soit au niveau du

parseInt(Objet.style.top)

voila le code original que j'ai modifié (et qui fonctionne)

<script language="javascript">

 

var Timer;

var Pas = 3;

  

function moveLayer(Sens)

    {

    if(document.getElementById)

    Objet = document.getElementById("Contenu");

  else

   Objet = document.all["Contenu"];

   if(parseInt(Objet.style.top) + (Pas*Sens) > 0)

  Objet.style.top = "0px";

   else

   Objet.style.top = (parseInt(Objet.style.top) + (Pas*Sens)) + "px";

   Timer = setTimeout("moveLayer(" + Sens + ");", 50);

   }

   </script> 

Répondre à kalimbra

3

Meelas, le 10 nov 2009 à 17:16:18

Salut,

Dans ton premier message, à mon avis l'erreur est à cette ligne :

Timer = setTimeout("moveLayer(" + Sens + ");", 50);

Tu ne met pas le 2eme paramètre "Contenu" donc quand la fonction se déclenche de nouveau, elle ne trouve pas l'élément qui a pour id la valeur de Contenu. ;)

En la changeant en : Timer = setTimeout("moveLayer(" + Sens + "," + Contenu + ");", 50); ça doit fixer l'erreur.


Après quand tu enlève le 2nd paramètre ça marche bien. ^^

Répondre à Meelas

4

 kalimbra, le 11 nov 2009 à 09:02:36

ça marche du tonnerre.. merci beaucoup...

comme je disais, chuis une bxxx en JS ...

Répondre à kalimbra