begin process at 2012 05 30 00:05:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

setTimeout et getElementById


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

setTimeout et getElementById

jeudi 19 février 2009 à 17:12:37 | setTimeout et getElementById

gollunk

Bonjour,

Je cherche à mettre le fond d' éléments html en bleu toute les x secondes (en passant les détails). Seulement voilà, le code suivant bloque (le cas pour FF et IE7) au niveau de la ligne de getElementById:

function SlideShow()
{
    if(slideshow)
    {
        document.images.dsimage.src = eval("image"+processedimg+".src");
        
document.getElementById("tab"+processedimg).style.background = 'blue';
        if(processedimg < img_number) processedimg++;
        else processedimg = 1;
    }
    setTimeout("SlideShow()", timer); //Go to function "SlideShow" before a lapsed time
}


Alors que ceci marche:

function SlideShow()
{
    if(slideshow)
    {
        document.images.dsimage.src = eval("image"+processedimg+".src");

        if(processedimg < img_number) processedimg++;
        else processedimg = 1;
    }
    setTimeout("SlideShow()", timer); //Go to function "SlideShow" before a lapsed time
    document.getElementById("tab"+processedimg).style.background = 'blue';
}

J'ai passé l'après-midi à creuser les forums mais rien. Merci d'avance.
jeudi 19 février 2009 à 17:48:40 | Re : setTimeout et getElementById

kazma

Administrateur CodeS-SourceS
bonjour
et t'a essayer de mettre cette ligne au dessus

 if(processedimg < img_number) processedimg++;
        else processedimg = 1;

document.getElementById("tab"+processedimg).style.background = 'blue';
jeudi 19 février 2009 à 18:14:33 | Re : setTimeout et getElementById

Bul3

Membre Club
bonjour,

    if(slideshow)      c'est quoi slideshow ?
   
img_number       ça vaut combien ?
   
"tab1" "tab2"...   ça va jusqu'où ? c'est quelle balise ?

      eval("image"+processedimg+".src");   sert à quoi eval ?
         
mage"+processedimg+".src"  tout seul çà doit le faire non ?

Cordialement

[mon Site][M'écrire]Bul

jeudi 19 février 2009 à 18:41:27 | Re : setTimeout et getElementById

gollunk

Kazma -> Oui, bien sûr et c'est la même chose.

Bul3 ->
-slideshow: boolean qui active ou non le diaporama
-img_number = 5
-tab1, tab2 ca va jusqu'à img_number, c'est à dire 5, ce sont des balises <a href>
-eval: execute directement la chaine de caractere comme du javascript, non tout seul ca ne marche pas

jeudi 19 février 2009 à 19:42:38 | Re : setTimeout et getElementById

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
processedimg est donc une variable globale qui vaut combien la 1st fois ?
dans le 2nd exemple la variable étant bornée le problème ne se pose peut être pas
j'essaierais

function SlideShow(){
  if(slideshow){
    document.images.dsimage.src = eval("image"+processedimg+".src");
    var Obj = document.getElementById("tab"+processedimg);
    if( Obj)
      Obj.style.background = 'blue';

    if(processedimg < img_number)
      processedimg++;
    else
      processedimg = 1;
  }
  setTimeout("SlideShow()", timer); //Go to function "SlideShow" before a lapsed time
}

pour voir si cela passe au 2nd coup...
mais je suis peut être complétement à la rue
;O)
jeudi 19 février 2009 à 20:19:07 | Re : setTimeout et getElementById

gollunk

Super, ça marche ! J'avais pourtant essayé un truc du genre mais la condition if( Obj) elle sert à quoi ( parceque c'est ça qui change tout).

Merci à toi pour l'aide rapide et efficace
jeudi 19 février 2009 à 20:39:58 | Re : setTimeout et getElementById

PetoleTeam

Membre Club
Si comme je le suppute, sans l'être, ta variable n'est pas initialisée, pas de valeur affectée, donc au premier passage elle vaut undefined.
l'ID que tu demandes à getElementById est dans ce cas tabundefined qui n'existe pas, il vaut null.
Le if( Obj) permet simplement de tester s'il existe et dans ce cas on change le style, dans le cas contraire on ne fait rien si ce n'est comtinuer les instructions de la fonction.

La bonne solution reste quand même d'initialiser la variable au départ, c'est le BaBA...
var processedimg = 1;
;O)
jeudi 19 février 2009 à 20:46:56 | Re : setTimeout et getElementById

gollunk

processedimg est bien initialisée a 1, c'est plutot de tab dont on parle et effectivement au lancement de la fonction SlideShow les les balises avec les id tab ne sont pas encore lu par le programme . Merci encore ;) je te suis trés reconnaissant, et merci à tous.
vendredi 20 février 2009 à 11:56:54 | Re : setTimeout et getElementById

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
lancement de la fonction SlideShow les les balises avec les id tab ne sont pas encore lu par le programme
dans ce cas la fonction doit être mise sur l'événement onload du document ou en fin de document, après la création effective des DIVs.
Il reste néanmoins surprenant que ta deuxième méthode fonctionne à chaque fois, mais bon le principal est que cela marche...
;O)


Cette discussion est classée dans : function, getelementbyid, slideshow, settimeout, processedimg


Répondre à ce message

Sujets en rapport avec ce message

Ptite question sur une function js [ par destiny ] Bonjour tlm :)Voila j'ai fais une ptite function js qui me modifie la VALUE de mon input suivant la valuer d'un checkbox!function MajTexteValider() {  Aide bienvenue... Pb avec setTimeout qui n'exécute qu'1 seule fois... [ par DaNifty ] Bonjour, J'ai un petit problème avec le code souce ci-dessous. Le pb est que la fonction setTimeout() execute correctement le code, mais uniquement 1 iframe dans nelle fenetre _blank [ par tonytruand ] BonjourEst ce quelqu'un pourrait me donner un petit coup de main, merci par avancej'aimerai ouvrir le contenu d'un iframe dans une nouvelle page et je Pb firefox pour cacher des div [ par fdthierry ] Bonjour,J'ai un menu qui se créé à partir d'une table.Le principe est le suivant:Année   Mois      JourAu chargement sous IE, je ne vois que les année Probleme de boucle [ par jfnoe ] Bonjour,Je voudrais utiliser un script de fondu d'image mais je n'arrive pas à le mettre en boucle.Le script s'éxécute correctement mais j'ai une erre ajax/xmlhttprequest [ par David_monchy ] salut à tous,je développe un chat, et j'ai un problème: j'utilise une liste de connectés qui affiche en 'temps reel' les membres connectés. Seulement, augmenter variable et si plus grande que variable =0 ? [ par frvfrvfrvfrv ] bonjour à tous,voilà deja mon code source.function milieucentre(){pf = ((window.innerWidth!=undefined) ? window.innerWidth : document.documentElem scrollLeft d'un div avec overflow : auto [ par Teclis01 ] Bonjour ici :)Alors voilà j'ai un petit soucis avec les différents browser (et j'ai testé que sur 2 )voici le html (il manque quelques balises mais ri problèle sur l'onload [ par borgeomi ] borgeomibonjouuuuuuur !!!!! Problème lors du chargement d'une page L'affichage de la list box est déclenchée par le fait de choisir le radio bouton GetElementById() [ par MAsterC ] Bonjour à tous.J'aurrai bien besoin d'aide.J'ai crée une fonction pour évité de pré-définir déjà les ID comme sa sa peux empêcher de crée des ligne a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales