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 :

Action unique d'un bouton sur des div de même class


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut Action unique d'un bouton sur des div de même class
    Bonjour,

    je cherche à créer une action unique d'un bouton répéter plusieurs fois dans plusieurs conteneurs afin d'afficher un bloc et de cacher un autre bloc, chacun disposant d'une class.
    <conteneur>
    bouton1 -> affiche bloc2 et cache bloc1
    bouton2 -> affiche bloc1 et cache bloc2
    </conteneur

    Le problème qui se pose (logique) c'est que lorsque je clique sur le bouton tout les blocs/div de tous les conteneurs s'affichent et s'effacent en même temps.
    Je voudrais que seul le bouton contenu dans le conteneur fasse effet sur les blocs/div de ce conteneur et pas des autres.

    Je essayé avec la fonction "each" mais soit je m'y prends mal, soit il ne s'agit pas de la fonction adéquate.

    Pourquoi : parce qu'il s'agit d'une boucle (wordpress) et que je ne peux pas attribuer un id différent à chaque div de chaque conteneur , parfois il peut y avoir 45 conteneurs sur la même page !

    j'espère avoir été conscis!

  2. #2
    Membre expérimenté Avatar de elfamine
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 113
    Par défaut
    Bonjour,

    Sans avoir vu ton code ca va etre difficile de te conseiller... mais en un mot ce que tu cherche c'est this

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut
    Merci pour ce conseil, mais je ne connais que le "this" selector et je ne vois pas comment l'utiliser pour désigner uniquement la class de la div du premier conteneur (par exemple)!

    voici mon code mais avec children :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $(document).ready(function(){
     
    	$('#links-Description').click(function()){
    		$(this).children('.InfosPratiques').hide();
    		$(this).children('.Descriptions').show();
    	});
    	$('#links-InfosPratiques').click(function()){
    		$(this).children('.Descriptions').hide();
    		$(this).children('.InfosPratiques').show();
    	});
     
    });
    et voici ce que j'ai trouvé sur le net (la fonction "next" , mais je n'y comprends rien et surtout ne sais pas si cela convient réellement à mon problème ! si c'est la réponse à mon problème serait-il possible de me l'expliquer

    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
    function open_menu($this) {
        $this.next('ul.sub-menu').css('display', 'block').stop(true, false).animate({
            width: '235px',
        }, 500);
    }
     
    function close_menu() {
        // close code here
    }
     
    status = 'closed'; // set the default menu status
     
    $('a').click(function() {
        switch(status) {
            case 'closed':
                open_menu($(this));
                break;
            case 'open':
                close_menu();
                break;
        }
    }

  4. #4
    Membre expérimenté Avatar de elfamine
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 113
    Par défaut
    Deja 1ere observation on ne peut y avoir plusieurs boutons avec le meme id, la meme class oui...mais pas le meme id

    Est ce qu'on peut voir ton code html stp ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Par défaut
    Code HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="activity_list_text">
    	<div class="Descriptions"><?php the_content(); ?></div>
    	<div class="InfosPratiques"><?php echo get_post_meta($post->ID,'Telephone',true) ?></div>
    </div>
    <div class="activity_list_links">
    	<ul>
    		<li class="links-Description">Description</li>
    		<li class="links-InfosPratiques">Infos pratiques</li>
    	</ul>
    </div>
    Le script jquery qui refonctionne, mais toujours pas action unique sur un conteneur, lorsque j'appuie sur un des booutons, tous les blocs de tous les conteneurs s'affichent ou s'effacent !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(document).ready(function(){
     
    	$('.links-Description').click(function(){
     
    		$('.activity_list_text').children('.InfosPratiques').hide();
    		$('.activity_list_text').children('.Descriptions').show();
    	});
    	$('.links-InfosPratiques').click(function(){
     
    		$('.activity_list_text').children('.Descriptions').hide();
    		$('.activity_list_text').children('.InfosPratiques').show();
    	});
     
    });

  6. #6
    Membre expérimenté Avatar de elfamine
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 113
    Par défaut
    c'est normal que
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).children('.InfosPratiques').hide();
    ne fonctionne pas puisque .InfosPratiques n'est pas un descendant de l'element clickable.

    quel est code html generé par ton php ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    php the_content();
    echo get_post_meta($post->ID,'Telephone',true);

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

Discussions similaires

  1. Permertte le scroll sur des div imbriqué
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/06/2012, 18h42
  2. Gérer un même évenement sur des div imbriqués.
    Par snake-09 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2010, 16h36
  3. action avec un seul bouton sur plusieurs MC différents
    Par cece2000 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 22/04/2008, 11h33
  4. Actions sur des div à l'intérieur d'une table
    Par Luke58 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2007, 08h53
  5. [HTML/CSS]Aide sur des div
    Par roudoudouduo dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 09/11/2006, 08h56

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