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 :

Héritage de div afficher/masquer un div


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 71
    Par défaut Héritage de div afficher/masquer un div
    Bonjour à tous,

    Je tente de reproduire le fonctionnement afficher/masquer des navigateurs pour un menu.

    J'explique :
    1 er cas
    je clique sur un bouton x, j'affiche et je masque mon div "cible" grâce aux méthodes : hide() et slow de Jquery.

    2 eme cas, code ci dessous
    Si je clique dans le container mais pas sur le div "cible", le div cible passe en hidden
    Si je clique sur le div "cible" celui reste affiché.

    Mon pb : avec ce code le div "cible" fait parti du div"container" alors si je clique dessus, il disparait

    Y-a-t-il une solution pour que cela fonctionne pour bloquer ce phénomène d''héritage ?

    merci

    $('div.container').not('div.cible').click( function()

    <div id="container" class="container">
    <div id="cible" class="cible"></div>
    <div id="toto" class="toto"></div>
    </div>

  2. #2
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Test un truc du genre : (je sais pas si ça peut marcher mais bon, c'est juste une idée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $('div.container').click( function(){
        $('div.cible').slideUp('normal');
        $('div.cible').click( function(){
              $('div.cible').slideDown('normal');
        });
    });
    Explication : Lors d'un clique sur la div container, on cache la div cible...sauf si on clique sur cette même div alors on l'a fait apparaître.. Seul inconvénient, on va la cacher puis la réafficher en même temps :/

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 71
    Par défaut
    Oui bonne idée, sauf qu'il y a un effet d'héritage

    click sur la div cible, qui se répercute sur la div container.
    Le premier sélecteur est rappelé donc il applique la méthode slideUp()

    Y'a-t-il un moyen de supprimer cette superposition ou ce héritage ?

  4. #4
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Il n'y a pas d'effet d'héritage car si tu clique sur la div cible ça veut dire que tu as cliquer sur la div container également et si tu suit l'ordre des choses il applique d'abord le slideUp et ensuite vérifie si la div cible a ete cliquer, au quel cas il applique un slideDown. En aucun cas, il va réappliquer un slideUp derrière

    edit : je retire ce que j'ai dit après un test. Effectivement la div cible reste cacher :/ L
    Là je sèche :s si je trouve quelques choses je te ferais savoir

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 71
    Par défaut
    Le problème peut être contourné par la technique "fenêtre modale" mais ça ne corrige pas

    merci, j'informerai si je trouve une autre solution

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 71
    Par défaut
    Salut à tous,

    ma solution se résume à :
    - récupérer les coordonnées (x,y)
    - calculer la zone sur laquelle il est étendu en fonction ses dimensions
    - d'appliquer la méthode hide() sur l'élément lorsque l'on clique on dehors de cette zone.

    Jeud.

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

Discussions similaires

  1. Afficher / Masquer des DIV
    Par Bounty59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/01/2007, 10h33
  2. Afficher / masquer des div
    Par Galaad dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/08/2006, 21h57
  3. [CSS & JAVASCRIPT] Afficher/Masquer un div
    Par alexfrere dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/07/2006, 15h02
  4. Fonction permettant d'afficher/Masquer un div
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/01/2006, 12h24
  5. Afficher/Masquer un <DIV> au clique de la souris.
    Par Joad dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/09/2005, 10h55

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