IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

setTimeout pas pris en compte


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 26
    Par défaut setTimeout pas pris en compte
    Bonjour, je débute en jquery et je ne comprend pas pourquoi "setTimeout" n'est pas pris en compte dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function switch_slides(first_slide, slide, end_slide, delay){
    	$(document).ready(function(){
    		$(".slideshow"+slide).hide();
    		if(slide == end_slide){
    			slide = first_slide;
    		}
    		else{
    			slide = slide + 1;
    		}
    		setTimeout($(".slideshow"+slide).fadeIn(), delay);
    		setTimeout(switch_slides(first_slide, slide, end_slide, delay), delay);
    		}
    	);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div class="slideshow1">frame 1</div>
    <div class="slideshow2" style="display: none">frame 2</div>
    <div class="slideshow3" style="display: none">frame 3</div>
    <div class="slideshow4" style="display: none">frame 4</div>
    <script>
    	switch_slides(1, 1, 4, 2000);
    </script>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tout simplement parce que le premier paramètre de tes setTimeout est mauvais

    Le premier paramètre doit être une référence à une fonction, or ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".slideshow"+slide).fadeIn()
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    switch_slides(first_slide, slide, end_slide, delay)
    n'en sont.

    Dans le premier cas, c'est une instruction jQuery, dans le second, c'est le résultat de l'exécution de la fonction.

    La bonne syntaxe serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(switch_slides, delay);
    puisque dans ce cas, tu passes bien une référence à ta fonction et non plus le résultat de son exécution, le problème c'est que comme ça, tu ne peux pas passer de paramètre... Il faut alors utiliser une fonction anonyme englobante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function(){switch_slides(first_slide, slide, end_slide, delay)}, delay);
    et dans ce cas, tu passes bien une référence à cette fonction anonyme qui lancera la bonne fonction avec les bons paramètres
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. getline(cin,s) pas pris en compte ?
    Par FinalSpirit dans le forum SL & STL
    Réponses: 3
    Dernier message: 19/01/2006, 01h18
  2. [Mail] Les sauts de lignes pas pris en compte
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 14/12/2005, 19h13
  3. [Plugi][phpeclipse] point d'arrêt pas pris en compte
    Par damjal dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/11/2005, 23h58
  4. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo