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 :

Fonction attribut click sur div


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut Fonction attribut click sur div
    bonjour,
    je suis un débutant en javascript.
    je veux changer une image de flesch lors du click sur un div.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="famille_1">
    		<h2>FAMILLE DE PRODUITS N°1</h2>
    		<img src="<?php echo $this->_img_path; ?>/flesh_f1_close.jpg"/>
    	</div>
    		<div class="famille_contenu_1 famille_contenu">
    		        <div class="famille_illustr">
    			<img src="<?php echo $this->_img_path; ?>/famille_illustr.jpg"/>
    		        </div>
                   </div>
    la balise image en rouge c'est elle que je veux la changer en cliquant sur famille_1.

    Code javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('div.famille_1').click(function() {
     
          	$(this).siblings('.famille_contenu_1').slideToggle('800')
          	.siblings('.famille_contenu:visible').slideUp('800');
    		$('img').attr({ src: "templates/defaut/images/flesh_f1_open.jpg" });
     
     
            });
    dés que je clique sur famille_1 tous les images de la page changent en flesh_f1_open.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    ton selecteur $('img') cible toutes les images de la page.

    utilise un contexte, en écrivant $('img', this), ainsi il cible
    les img dans le div.

    si tu veux changer que la première, $('img', this).eq(0)

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Avec $('img', this) chaque image cliqué ne serait-il pas modifié par le même image flesh_f1_open.jpg?
    Je pense que donner un id pour l'image cible du click serait plus précise.

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    ajouter des ID n'est pas forcement nécessaire, regarde la doc des sélecteur
    ici
    tu devrais t'en sortir avec ça

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Oui, mais cela ne cible pas tous les images cliqués du $('div.famille_1')?

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Oui, c'est pour ça que je t'ai proposé d'utiliser eq(0) pour réduire la sélection
    à la première image

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    Merci Marcha.
    j'ai utilisé $('img', this).eq(0).attr({ src: "templates/defaut/images/flesh_f1_open.jpg" }); et y'a que la première image qui change.

    Mais moi je veux qu' elle change en plus je veux que toutes les autres images de div.famille_2 , 3, 4 et 5 en flesh_f "n°"_close.jpg

    et sur une deuxième clicks (ca veut dire lorsqu'on cache le produit) l'image revient à flesh_f1_close.jpg.

    Merci d'avance.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    c'est bon j'ai réussi ouaiiiie!!!!

    en faite je doit changer tous les flesh en fermante de tous les autre dic.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $('img', this).eq(0).attr({ src: "templates/defaut/images/flesh_f1_open.jpg" });
    		$('img', 'div.famille_2').eq(0).attr({ src: "templates/defaut/images/flesh_f2_close.jpg" });
    		$('img', 'div.famille_3').eq(0).attr({ src: "templates/defaut/images/flesh_f3_close.jpg" });
    		$('img', 'div.famille_4').eq(0).attr({ src: "templates/defaut/images/flesh_f4_close.jpg" });
    		$('img', 'div.famille_5').eq(0).attr({ src: "templates/defaut/images/flesh_f5_close.jpg" });
    Merci pour vous, c'est bien de resoudre un truc comme ça.

    thnk you.

  9. #9
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    tu peux le faire en une opération avec le bon sélecteur.

    mais tu utilise les class comme des ID, c'est pas très judicieux.

    imagine que tes images fleche aient une class='fleche'

    tu peux modifier ton code ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('img.fleche').attr({ src: "templates/defaut/images/flesh_f2_close.jpg" });
    $('img.fleche', this).attr({ src: "templates/defaut/images/flesh_f1_open.jpg" });

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    salut,

    merci marcha pour ta formidable explication, mais lorsque j'utilise la derniere explication tous les flesh qui ont une classe flesh change en flesh_f1_open.jpg.

    Bref je préconise ce que j'ai fait au débu car ça marche ..

    Mais le problème maintenant est que lorsque je reclick sur la meme famille il faut que la flesh changer en fermé.

    1 click ouvre
    2 click ferme

  11. #11
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Tu peux mémoriser des choses dans les éléments avec data

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    merci c'est trés interressant.
    mais je crois pas que je serais capable d'utiliser la fonction data facilement.
    Un exemple svp, car les exemples dans la doc ne sont pas trés claire.

  13. #13
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    qu'est-ce qui n'est pas clair ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    je veux dire est ce que vous pouvez m'expliquez sur un exemple de mon code, comme ça je comprendrai mieux et en l'appliquannt sur les différentes div j'apprendrai à utiliser cette fonction.

    Merci beaucoup.

    Ps: je suis pas anglophone.

  15. #15
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Par exemple pour fixer une information sur les éléments d'une sélection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('img', this).eq(0).data('etat', true);
    et pour la relire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var etat = $('img', this).eq(0).data('etat');

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    merci pour vos explications.
    C'est trés gentil.

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

Discussions similaires

  1. click sur Div, soucis sur IE et Firefox
    Par Michelk12 dans le forum jQuery
    Réponses: 2
    Dernier message: 19/06/2012, 11h42
  2. fonction .click sur nouvel élément
    Par tylerr dans le forum jQuery
    Réponses: 6
    Dernier message: 30/08/2010, 16h38
  3. [DOM] [debutant] comment détecter un click sur un div
    Par junior68 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/06/2009, 15h26
  4. exécuter fonction php après click sur checkbox
    Par neismarspra dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2008, 23h44
  5. click sur une zone <DIV>
    Par Commodore dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 22/07/2006, 14h05

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