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

JavaScript Discussion :

clicker pour fermer une div


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut clicker pour fermer une div
    Salut,

    Voila, j'ai simplifié au max ma page pour vous la montrer:
    http://boxfly.free.fr/test/login.html

    Quand on clique sur --- Connexion -- cela affiche une div contenant des identifiants de connexion.
    Pour la fermer il suffit de re-cliquer sur Connexion. J'aimerai qu'un clique n'importe ou sur la page (sauf dans cette div) me ferme cette div.
    Je ne vois pas comment faire, quelqu'un aurait une idée ?

    Merci,
    Vincent.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Vous pouvez jouer avec le onclick du <body>.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par vermine Voir le message
    Bonjour,

    Vous pouvez jouer avec le onclick du <body>.
    Le onClick du <body> fermer la div même si la souris est dans la div du menu d'authentification, or elle ne doit pas se fermer avec un click dans cette div...

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut Oups
    Oui, pardon. Vous devez gérer la propagation avec stopPropagation ou preventDefault mais j'avoue que je ne sais plus si c'est crossbrowser.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    la fonction associée au click sur le BODY doit tester qui à reçu l'événement, si c'est la DIV on ne fait rien sinon si elle est affichée on la masque.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    la fonction associée au click sur le BODY doit tester qui à reçu l'événement, si c'est la DIV on ne fait rien sinon si elle est affichée on la masque.
    Comment on peut savoir qui recoit l'évènement onClick ? parce que stopPropagation, ca a l'air bien compliqué...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Salut,

    Déjà tu te simplifierais vraiment la tâche en utilisant la librairie jquery.
    Cela te permettra de tout condenser et de simplifier à mort ton code.

    2 conseils aussi :
    Évite les tableaux quand tu peux (là sur un formulaire, tu peux je pense).
    Mets tes styles dans une CSS , même si c'est juste en début de page. Regroupes les.

    Ensuite pour ton histoire de click, toujours en jQuery tu peux utiliser la fonction :not (qui équivaut à un except "blabla")

    En gros tu peux rendre ton clique avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('#menuTD_1').click(function() {
      $('#tadiv').show;
      $("#tadiv").addClass("opened");
    });
     
    $('body :not(.opened)').click(function() {
      $('#tadiv').hide;
    });

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    il faut utiliser target ou srcElement, un petit exemple au naturel
    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
    <html>
    <head>
    </head>
    <body>
    <p>petit texte</p>
    <a href="page.html">petit lien</a>
    <script type="text/javascript">
    document.onclick = function(e){
      e = e || event;
      var oElem = e.target || e.srcElement;
      alert( oElem.tagName);
      if( oElem.tagName == 'A'){
        return false;
      }
    }
    </script>
    </body>
    </html>

Discussions similaires

  1. Fermer une div par un clic
    Par lhulard dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/09/2006, 14h58
  2. Créer un script pour fermer une session Windows
    Par Olivierc dans le forum Windows
    Réponses: 2
    Dernier message: 24/08/2006, 13h40
  3. aide pour faire une Div
    Par nebil dans le forum Mise en page CSS
    Réponses: 21
    Dernier message: 31/07/2006, 18h51
  4. [Débutant] lien pour fermer une fenaitre
    Par paterson dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/04/2006, 10h21
  5. Script pour fermer une session ssh
    Par le y@m's dans le forum Linux
    Réponses: 8
    Dernier message: 19/09/2005, 15h49

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