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

jQuery Discussion :

Conditions et évènements


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut Conditions et évènements
    Bonjour,
    je reviens vers vous pour une autre question qui n'est pas évidente à expliquer..., j'ai trois images dans une page web, quand je clique sur une image elle doit apparaitre en grand dans une pop-In, je dois faire cela en jQuery.
    J'ai réussi, mais je trouve que mon code est trop répétitif. Dans ma formation on a pas vu les les fonctions ou sous-programme. J'ai fait quelques recherche sur internet, j'ai quelques idée mais je n'arrive pas à mettre en pratique.

    J'ai voulu créer une seul pop-In(div) et éviter d'en faire trois, puis quand je clique sur une des images j'attribue du css le src et show()

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     $("#imgOnglet1").click(function(){
        $("#popInImg img").css({"width" :"700px"});
        $("#popInImg").fadeIn(1000);
        $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
        $("#popInImg img").attr("src", "img/onglet1.jpg");
        });
     
        $("#hide1").click(function(){
         $("#popInImg").hide();
        });
     
        $("#imgOnglet2").click(function(){
          $("#popInImg img").css({"width" :"700px"});
          $("#popInImg").fadeIn(1000);
          $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
          $("#popInImg img").attr("src", "img/onglet2.jpg");
        });
     
     
     
     
       $("#imgOnglet3").click(function(){
          $("#popInImg img").css({"width" :"700px"});
          $("#popInImg").fadeIn(1000);
          $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
          $("#popInImg img").attr("src", "img/onglet3.jpg");
        });
     
     
       $("#imgOnglet4").click(function(){
          $("#popInImg img").css({"width" :"700px"});
          $("#popInImg").fadeIn(1000);
          $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
          $("#popInImg img").attr("src", "img/onglet4.jpg");
        });
    Tout est répétitif sauf attr()

    Est t'il possible de mettre des conditions selon l'image que je clique et appliquer le src correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $("#imgOnglet1, #imgOnglet2, #imgOnglet3,#imgOnglet4 ").click(function(){
        $("#popInImg img").css({"width" :"700px"});
        $("#popInImg").fadeIn(1000);
        $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
     
        if("#popInImg img").click ......
           $("#popInImg img").attr("src", "img/onglet1.jpg");
        } else if ("#popInImg img").click ......{
          $("#popInImg img").attr("src", "img/onglet2.jpg");
        });
    Je connais un peu les conditions pour comparer des variables mais les évènements un peu plus compliqué pour moi.
    Je pourrais laisser le code que j'ai fait mais j'aimerais optimiser et apprendre un peu plus.
    merci pour votre aide.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    la documentation est très souvent un bon recours : jQuery.on().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("liste des éléments").on("click", function(){
      console.log($(this).attr("la valeur que tu recherches"));
    });

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    bonsoir,
    merci pour votre réponse, oui j'essaie de regarder un peu les documentation mais parfois c'est un peu compliqué
    Donc si je comprend bien votre réponse avec ce code j'applique aux trois éléments le css fadeIn et css (qui est en commun aux trois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("#imgOnglet1, #imgOnglet2, #imgOnglet3,#imgOnglet4 ").click(function(){
        $("#popInImg img").css({"width" :"700px"});
        $("#popInImg").fadeIn(1000);
        $("#popInImg").css({"left" : popLargeurImg, "top": popHauteurImg});
    });

    et pour changer l'image dans la pop-in selon si je clique sur l'image1 deux ou trois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $("#imgOnglet1").on("click", function(){
      console.log($(this).attr("src", "img1.jpg"));
    });
     
    $("#imgOnglet2").on("click", function(){
      console.log($(this).attr("src", "img2.jpg"));
     
    etc.
    Merci pour votre aide et surtout votre patience.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Pas tout à fait, il te faut « structurer » ton raisonnement

    A partir du HTML suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <img src="images/image-1.png" class="pop-in-img" alt="">
    <img src="images/image-2.png" class="pop-in-img" alt="">
    <img src="images/image-3.png" class="pop-in-img" alt="">
    <!-- etc -->
    <!-- la pop-in masquée -->
    <div id="pop-in-div">
      <img alt="">
    </div>
    ... j'ai mis une classe commune sur les images pour alléger le sélecteur.

    Ensuite, il te suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(".pop-in-img").on("click", function(){
       // récupération, l'élément jQuery cliqué est $(this)
       const src = $(this).attr("src");
       // affectation src à l'image
       $("#pop-in-div img").attr("src", src);
       // affichage de la pop-in
       $("#pop-in-div").fadeIn(1000);
    });
    rien de plus si ce n'est adapter à ton besoin

  5. #5
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    Ah d’accord je n’avais pas de tout pensé à récupérer dans une variable l’ image cliquée puis la manipuler.. Je vais agrandir l’image dans la pop-in en lui affectant aussi le css.
    Merci pour votre aide.
    Bonne soirée

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

Discussions similaires

  1. Condition dans évènement sur JButton
    Par Carlito08 dans le forum Composants
    Réponses: 2
    Dernier message: 02/11/2012, 14h24
  2. Graphe déroulant avec condition d'évènement
    Par shoub29 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 25/05/2012, 18h10
  3. [LV 2009] Enorme bug condition d'évènement
    Par K-RK-S dans le forum LabVIEW
    Réponses: 4
    Dernier message: 26/03/2010, 09h19
  4. Condition d'un événement
    Par froutloops62 dans le forum Access
    Réponses: 2
    Dernier message: 10/01/2007, 15h11
  5. Condition sur un événement
    Par kobe dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2005, 10h17

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