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

JavaScript Discussion :

Timing dans l'exécution de fonctions [Encodage]


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Timing dans l'exécution de fonctions
    Bonjour, je suis un débutant en javascript/jquery
    J'ai crée un script qui lance le défilement des images. Le script fonctionne correctement sauf que la arriver à l'étape 2, le script n'éxécute plus les instructions comme je le souhaite, car il fait une pause plus importante que prévu puis éxécute 2 fois de suite la fonction.

    voici l'adresse de la démo :http://www.godartmartin.com/test/

    et voici le code

    function scrollUl(u){

    jQuery('ul.category-moduleimageSlider').stop();
    jQuery('ul.category-moduleimageSlider').clearQueue();
    clearTimeout(mytimer);
    timeIn= true;
    jQuery('ul.category-moduleimageSlider').animate({left: (u)},{duration: 3000, complete: nextStep});
    };

    function nextStep (){
    jQuery('ul.category-moduleimageSlider').stop();
    jQuery('ul.category-moduleimageSlider').clearQueue();
    clearTimeout(mytimer);
    if ( positionTableau<(counterImage-1)){
    positionTableau++;
    var ld = document.getElementById('imgdot'+ (positionTableau-1) +'');
    ld.removeClass("selectedDot");
    ge = (positionTableau);
    var leftStep = arrayMidImage[ge];
    var id = document.getElementById('imgdot'+ ge +'');
    id.addClass("selectedDot");

    var leftStep = arrayMidImage[ge];
    mytimer=setTimeout(function(){
    scrollUl(leftStep);
    },6000);
    delete ld;
    delete id;

    }


    };

    /*////*/
    jQuery('.dot').click(function() {

    jQuery('ul.category-moduleimageSlider').stop();
    jQuery('ul.category-moduleimageSlider').clearQueue();
    clearTimeout(mytimer);
    jQuery('div.imgCounter div').each(function(){
    jQuery(this).removeClass("selectedDot");
    });

    var id = jQuery(this).attr('id');
    var childNbClick = id.split('imgdot');
    var childNb = parseInt(childNbClick[1]);

    var ghb = document.getElementById('imgdot'+ childNb +'');
    positionTableau= childNb;

    ghb.addClass("selectedDot");

    if (childNb == 0){
    jQuery('ul.category-moduleimageSlider').animate({ "left": startPosition}, "fast" );
    }else{
    stepPosition = arrayMidImage[childNb-1];
    jQuery('ul.category-moduleimageSlider').animate({ "left": stepPosition}, "fast" );
    }
    ge = (positionTableau);
    var leftStep = arrayMidImage[ge];
    mytimer=setTimeout(function(){
    scrollUl(leftStep);
    },6000);
    delete ghb;
    });


    merci à ceux qui pourront m'aider, le problème vient incontestablement des variables entre la position 1 et 2 mais je ne comprends pas pourquoi.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Bonjour,

    1) le forum JQuery est ici
    3) Merci de lire la charte du forum. tu y trouveras des explication pour rendre ton code lisible. (utilisation de [CODE][code=HTML][code=javascript]
    Pour obtenir de l'aide explique précisément où se situe le problème, donne les messages d'erreurs que t'affiche ton debogger etc.

    De façon générale mieux vaut réagir à des événements que de passer par un timer

    tu peux généré tes propres événement et activer une fonction lorsqu'il sont généré
    https://developer.mozilla.org/en-US/...ggering_events
    http://learn.jquery.com/events/intro...custom-events/
    http://www.htmlgoodies.com/beyond/ja...th-jquery.html
    http://jsfiddle.net/docluv/H8a2N/

    A+JYT

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut J'ai déplacé et corriger le message dans le forum Jquery
    Merci pour ton message.
    J'ai déplacé le message vers le lien indiqué.
    Bonne journée et merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2007, 17h49
  2. exécution macro fonction dans VBE
    Par Maxence45 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/11/2007, 08h57
  3. Exécuter une fonction dans un thread
    Par Silverstone dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 23/06/2007, 12h24
  4. Exécuter une fonction PL/SQL dans SQL*PLUS
    Par soumou dans le forum PL/SQL
    Réponses: 5
    Dernier message: 03/11/2006, 00h07
  5. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 07h48

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