Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction qui s'exécute plusieurs fois

    27 novembre 2011 à 0:52:25

    Bonjour :)

    Voila, j'ai un petit souci, enfaite j'ai une page avec un menu, il y a un bouton photo, qui quand on le clic, affiche une liste d'image et quand on scroll, la suite des images se chargent.
    Le truc c'est que si on clic sur un autre bouton et ensuite qu'on reclick sur le bouton image, la fonction est une nouvelle fois exécuter logique pour afficher les images, mais celle du scroll aussi!! Du coups on a plusieurs fois les même chargement d'images! :(

    Je n'est volontairement pas mis de code car il n'y a rien de sorcier, juste un fonction qui est exécuter quand on click sur un bouton et un autre (dans la premiere fonction) quand on scroll.

    Pourriez vous m'aider?

    Merci d'avance :)
    Cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      27 novembre 2011 à 4:41:25

      Arf en faire j'ai un menu avec dedans plusieurs bouton comme "info" et "photo".
      Quand je clic sur le bouton "photo", cela déclenche un fonction pour aller chercher les 30 premieres images en ajax.
      Dans cette fonction ce trouve aussi l'exécution d'une autre fonction. Dans cette 2nd fonction ce trouve un $(window).scroll(); qui quand on scroll va aller cherché les 30 images suivantes.
      Donc en gros:

      fonction scroll(){
      $(window).scroll(function(){
        //requête Ajax pour images suivantes
      });
      }
      
      fonction clickImage(){
      //fonction Ajax
      
      scroll();
      
      }
      


      Le truc c'est que si on on click sur les autres boutons et qu'on reclick plusieurs fois sur le bouton "photo" la fonction scroll() s'exécute plusieurs fois (on est en ajax donc a aucun moments la page n'est rechargé donc la fonction se multiple).
      Ce qui fait que ensuite qu'en on scroll on a des tonnes de fois les mêmes photos car il y a la fonction scroll() qui s'exécute plusieurs fois.

      Voila :D j'espere avoir d'avantage était plus clair cette fois ^^
      • Partager sur Facebook
      • Partager sur Twitter
        27 novembre 2011 à 12:02:18

        Tu peux faire une variable temporaire qui stocke si on a déjà chargé les 30 premières images, comme cela tu peux vérifier avant l'appel ajax s'il faut le faire ou non ?

        Sinon je suis pas d'accord sur ton code (d'ailleurs il faut préciser dans le titre du sujet que tu utilises jQuery).

        $(document).ready(function() {
            var tmp;
            $(window).scroll(function() {
                //condition sur tmp
                //requête Ajax pour images suivantes
            });
        });
        
        fonction clickImage() {
            //fonction Ajax
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2011 à 17:35:18

          Ah oui c'est une très bonne idée! Merci beaucoup :) !
          • Partager sur Facebook
          • Partager sur Twitter

          Fonction qui s'exécute plusieurs fois

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown