Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème changement de fond JQuery

Sujet résolu
    4 novembre 2010 à 10:44:42

    Bonjour,
    Voilà pour un projet je réalise un calendrier, je voudrais que lorsque l'on clique sur une case elle devienne rouge comme ceci : Image utilisateur

    Ça marche mais quand je clique sur une autre case, elle devient rouge aussi, je voudrais qu'une seul case puisse être sélectionné a la fois, donc que la case précédente retrouve son background d'origine.
    J'ai essayé avec bind , unbind mais aucun résultat concluant, je suis débutant en Jquery donc je viens chercher de l'aide !

    $(function () {
    	
    	$('.calendrier td').bind('click',function () 
    	{
    	var background = $(this).css("background");
    	$(this).css({"background": "red"});
    	$(this).css({"color": "white"});
    	}
    	);
    	$('.calendrier td').unbind('click',function () 
    	{
    	$(this).css({"background": background});
    	$(this).css({"color": "black"});
    	}
    	);
    	
    });
    


    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2010 à 11:04:48

      $('.calendrier td').click(function () 
      {
          $('.calendrier td').css({"color": "white"});
          $(this).css({"background": "red"});
      });
      


      ?
      • Partager sur Facebook
      • Partager sur Twitter
        4 novembre 2010 à 11:09:21

        Merci pour la réponse, mais même problème quand je clique sur une autre case elle devient rouge aussi :/
        • Partager sur Facebook
        • Partager sur Twitter
          4 novembre 2010 à 11:32:46

          Ah mince, j'avais mal lu ton code. (Elle est définie où la variable background ? o_O)

          $('.calendrier td').click(function () 
          {
              $('.calendrier td').css({
                  "color": "black",
                  "background": background
              });
              $(this).css({
                  "color": "black",
                  "background": "red"
              });
          });
          
          • Partager sur Facebook
          • Partager sur Twitter
            4 novembre 2010 à 11:41:37

            Merci beaucoup ca marche avec ce code :

            $('.calendrier td').click(function () 
            			{
            				var background = $(this).css("background");
            				
            			    $('.calendrier td').css({
            			    	"color": "#444",
            			        "background": background
            			    });
            			    $(this).css({
            			        "color": "white",
            			        "background": "red"
            			    });
            			});
            
            });
            


            Mais je ne comprend pas vraiment comment ca marche ? pourrais tu m'expliquer ?
            Merci d'avance !
            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2010 à 11:44:16

              Aaah oui, voilà le background :)

              Au clic sur une case, tu récupères le background de la case (donc le background "par défaut").

              Tu appliques ce background à toutes les cases (".calendrier td"), ainsi tu réinitialises complètement ton calendrier.

              Enfin, tu modifies le background de la case cliquée.
              • Partager sur Facebook
              • Partager sur Twitter
                4 novembre 2010 à 11:54:37

                Ok merci, mais il y a un truc assez bizarre : vu que je réinitialise tout les backgrounds toutes les cases devrait être les mêmes ! mais comme tu la vu sur mon calendrier, il ya des backgrounds différents :
                - un pour le jour en cours
                - et un autre pour un jour où il y a un événement.

                Mais les backgrounds reste les bons ! ce n'est pas un problème puisque c'est ce que je souhaite, mais je ne comprend pas pourquoi ^^.

                Le seul problème qui reste est que lorsque je clique tout les polices deviennent #444 alors que certaines devrait restait blanche (jour en cours et évènement).

                Merci encore pour tes réponses :).
                • Partager sur Facebook
                • Partager sur Twitter
                  4 novembre 2010 à 12:15:54

                  Ne sachant pas comment sont colorés tes cases de jour en cours et d'événement, je ne peux pas te répondre.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 novembre 2010 à 12:53:56

                    Sur mon premier-post ya une image ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 novembre 2010 à 13:13:13

                      Par "comment", je parlais du code... pas de l'aspect visuel. x)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 novembre 2010 à 13:32:26

                        Oui forcément désolé XD !

                        En CSS :
                        .calendrier td.date_has_event{
                            background-position: 162px 0px;
                        }
                        .calendrier td.today {
                            background-position: 81px 0px;
                            color: white;
                        }
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 novembre 2010 à 13:54:10

                          ... Donc il y a un background-image quelque part ?

                          (Peut-être que jQuery interprête tout seul qu'il s'agit d'un simple changement de background-color... Ou alors c'est une histoire de sélecteurs plus ou moins prioritaires)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 novembre 2010 à 13:58:12

                            Oui il ya un background-image.

                            Ok bon ba si ca marche on va pas allez chercher plus loin !

                            Merci encore pour tes réponses rapides et claires :).

                            A+
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Problème changement de fond 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