Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
Seyu
#
Citer
54 Posts
Bonjour smile

J'essaye actuellement de lancer une fonction toutes les x secondes, avec la fonction setTimeout().
Voici le code :

$(document).ready(function()
{    
    function Bloc_suivant()
    {
        var nb_blocs = 3;
        var en_cours = '';
        var suivant = '';
        
        $('div').each(function()
        {
            if ($(this).hasClass('show'))
            {
                    en_cours = $(this).attr('id');

                    if (en_cours == nb_blocs)
                    {
                        suivant = '1';
                    }
                    else
                    {
                        suivant = $(this).next().attr('id');
                    }
                
                for (i=1; i<nb_blocs+1; i++)
                {
                    if ($('#'+i+'').attr('id') != suivant)
                    {
                        $('#'+i+'').hide();
                    }
                    else
                    {
                        $('#'+i+'').show();    
                    }
                }                
            }
        });

        $('#'+en_cours+'').removeClass('show');
        $('#'+suivant+'').addClass('show');

    }
        
    var obj = 'Bloc_suivant();';
    setTimeout(obj,1050);
    
});


° J'ai fait des test en changeant l'obj par window.location.reload() et ça fonctionne, donc aucun problème au niveau de la fonction timeout.
° J'ai essayé d’exécuter ma fonction Bloc_suivant() au chargement de la page, cela fonctionne aussi.

Le message d'erreur affiché dans la console est que ma fonction Bloc_suivant() n'est pas définie.

Quelqu'un aurait-il une idée ? smile

Merci d'avance.
Modifié par Seyu (10 Feb 2012 - 10:58)

^
kenor
#
Citer
399 Posts
Si tu n'as aucun paramètre à faire passer

setTimeout(Bloc_suivant,1050);

directement.

^
Seyu
#
Citer
54 Posts
C'était tout bête ... Merci pour ta réponse ;D

Cependant, est-il possible de relancer cette action en boucle ? (toutes les x secondes toujours)

Edit : J'ai trouvé, il suffit de remplacer setTimeout par setInterval avec les mêmes params.

Sujet résolu, merci cligne
Modifié par Seyu (10 Feb 2012 - 11:42)

^