Partage
  • Partager sur Facebook
  • Partager sur Twitter

Optimiser du jquery

Sujet résolu
    30 octobre 2010 à 18:00:38

    Bonjour,

    Je souhaite optimiser du Jquery. Après plusieurs test et visite de forum je n'arrive pas optimiser mon code.

    // Partie Papa
    $(".papa").click(function() {
    	$(".tab_content").hide(500)
    	var activeTab = $(this).find("a").attr("href");
    	$(activeTab).toggle(1000);
    	return false;
    });
    
    // Partie Maman
    $(".maman").click(function() {
    	$(".tab_content").hide(500);
    	var activeTab = $(this).find("a").attr("href");
    	$(activeTab).toggle(1000);
    	return false;
    });
    


    J'ai mis une partie du code pour une meilleur visibilité.
    Se qui fait appel à la même fonction j'aimerais le réécrire en une ligne.
    Je suis passé par des variables, création d'une fonction pour faire un rappel dans celle-ci, je reste bloqué :(

    J'ai enlever des fonctions Jquery qui ne sont pas les mêmes dans ".papa" et ".maman"


    Si vous aurez sous la main comment faire, lien, explication et autre, je suis preneur.

    Merci d'avance
    Kitzumé
    • Partager sur Facebook
    • Partager sur Twitter
    Regarder derrière soi et prendre peur est un signe de "iT's ALIVE !!!"_-_ objective -> black hole _-_
      30 octobre 2010 à 18:22:31

      // Partie Papa et Maman
      $(".papa,.maman").click(function() {
      	$(".tab_content").hide(500)
      	var activeTab = $(this).find("a").attr("href");
      	$(activeTab).toggle(1000);
      	return false;
      });
      
      • Partager sur Facebook
      • Partager sur Twitter
        30 octobre 2010 à 19:06:37

        Méthode que je connaissait et je n'ai pas pensé à appliquer.

        Existe t-il d'autre méthode ?
        Comme par exemple dans l'as : création d'une fonction que l'ont peut rappeler dans d'autre fonction.
        • Partager sur Facebook
        • Partager sur Twitter
        Regarder derrière soi et prendre peur est un signe de "iT's ALIVE !!!"_-_ objective -> black hole _-_
          30 octobre 2010 à 19:13:15

          function fonction($el) {
          	$(".tab_content").hide(500)
          	var activeTab = $el.find("a").attr("href");
          	$(activeTab).toggle(1000);
          }
          
          // Partie Papa
          $(".papa").click(function() {
          	fonction($(this));
          	return false;
          });
          
          // Partie Maman
          $(".maman").click(function() {
          	fonction($(this));
          	return false;
          });
          
          • Partager sur Facebook
          • Partager sur Twitter
            30 octobre 2010 à 19:25:21

            Citation : Golmote

            function fonction() {
            	$(".tab_content").hide(500)
            	var activeTab = $(this).find("a").attr("href");
            	$(activeTab).toggle(1000);
            	
            	return false;
            }
            
            // Partie Papa
            $(".papa").click(fonction);
            
            // Partie Maman
            $(".maman").click(fonction);
            


            Non?
            • Partager sur Facebook
            • Partager sur Twitter
              30 octobre 2010 à 19:29:51

              Salut,

              EIDT: Grillé

              Golmote, pourquoi pas ça ? :-°

              function fonction() {
              	var activeTab = $(this).find("a").attr("href");
              	$(".tab_content").hide(500);
              	$(activeTab).toggle(1000);
              	return false;
              }
              
              $(".papa").click(fonction);
              $(".maman").click(fonction);
              



              Ce qui me gêne avec jQuery, c'est qu'à chaque appel de $(), un nouvel objet est crée. Donc ici à chaque clic, on a rien que 3 nouveaux objets en mémoire (et des objets jQuery ça fait un max de propriétés et de méthodes, donc c'est "gros") !! :o
              • Partager sur Facebook
              • Partager sur Twitter
                31 octobre 2010 à 2:07:31

                Citation : Tiller

                Citation : Golmote

                function fonction() {
                	$(".tab_content").hide(500)
                	var activeTab = $(this).find("a").attr("href");
                	$(activeTab).toggle(1000);
                	
                	return false;
                }
                
                // Partie Papa
                $(".papa").click(fonction);
                
                // Partie Maman
                $(".maman").click(fonction);
                



                Non?



                Aussi, oui. Mais il dit que certaines parties du code diffèrent entre Papa et Maman... donc j'avais préféré ne pas prendre de "risques" :)

                @LCaba : C'est en effet un des "problèmes" de jQuery.
                • Partager sur Facebook
                • Partager sur Twitter
                  31 octobre 2010 à 11:06:32

                  Merci bien pour cette méthode, elle est toute simple a comprendre.
                  A la fin de

                  $(".tab_content").hide(500);
                  

                  manque juste un point ";"

                  Cdt
                  Kitzumé
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Regarder derrière soi et prendre peur est un signe de "iT's ALIVE !!!"_-_ objective -> black hole _-_
                    31 octobre 2010 à 11:09:55

                    En effet, ce ";" manque depuis ton premier post... J'ai copié/collé partout sans rectifier.

                    Content que ton problème soit résolu. :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 novembre 2010 à 10:30:13

                      Je dirait que ces moi qui a fait la faute de l'effacer :-°
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Regarder derrière soi et prendre peur est un signe de "iT's ALIVE !!!"_-_ objective -> black hole _-_

                      Optimiser du jquery

                      × 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