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 :

Plusieurs boîtes de dialogues


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Par défaut Plusieurs boîtes de dialogues
    Bonjour,

    J'ai récupéré un morceau de code sur le site JQuery pour faire une petite boîte Modal, pour afficher trois informations.

    Ok ça fonctionne, seulement j'aimerai répéter le code plusieurs fois dans la page, et je n'arrive pas à trouver ce qu'il faut écrire.

    Voici le code
    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
    $.fx.speeds._default = 100;
        $(function() {
            $('.dialog').dialog({
                autoOpen: false,
                show: 'blind',
                hide: 'clip',
                draggable: false,
                modal: true,
                minHeight: 300,
                maxWidth: 400,
                resizable: false
            });
     
            $('.opener').click(function() {
                $('.dialog').dialog('open');
                return false;
            });
        });
    Et la où je l'utilise, dans une boucle :
    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
    <div class="direction">
                        <p><span>En direction: </span><?php echo $camps->getCentreAnimateur() ?></p>
                        <a href="" class="opener">
                            <img alt="Voir profil" src="/uploads/personnel/<?php echo $camps->getCentreAnimateur()->getPhotos() ?>">
                        </a>
     
                        <div class="dialog" title="<?php echo $camps->getCentreAnimateur() ?>">
                            <div class="animphoto">
                                <img alt="<?php echo $camps->getCentreAnimateur() ?>" src="/uploads/personnel/<?php echo $camps->getCentreAnimateur()->getPhotos() ?>">
                            </div>
     
                            <div class="anim">
                                <p>Nom: <?php echo $camps->getCentreAnimateur() ?></p>
                                <p>Age: <?php echo $camps->getCentreAnimateur()->getSonAge() ?> ans</p>
                                <p>Sexe: <?php echo $camps->getCentreAnimateur()->getSexe() ?> </p>
                            </div>
     
                            <div class="clearer"></div>
                        </div>
    Le problème quand je clic sur mon lien ça m'ouvre plusieurs boîtes, ce qui a l'air normal vu le code.

    Comment faire en sorte d'ouvrir seulement le div suivant appelé .dialog ?

    J'ai essayé avec $('.opener').next().dialog('open') mais ça ne fait rien.
    Ni avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('.opener').click(function() {
                $('div').children('.dialog').dialog('open');
    qui m'ouvre aussi toutes les boîtes de dialogues...

    Ca doit être bête comme réponse j'imagine, merci d'avance

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Avec plusieurs couples a.opener/div.dialog la seule solution est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('.opener').click(function() {
    	$(this).next().dialog('open');
    	return false;
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Par défaut
    Bonjour,

    Merci de la réponse, mais ça ne fonctionne pas, car le code de la boîte de dialogue est cachée, il n'y a rien dans le code source où pourrait pointer le (this).next()

    Donc j'ai utilisé la méthode toggle pour pouvoir accéder à mes éléments:

    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
     
    <script type="text/javascript">
        // increase the default animation speed to exaggerate the effect
        $.fx.speeds._default = 100;
        $(function() {
            $('.dialog').toggle();
            $('.opener').click(function() {
                $(this).parent().children('.dialog').dialog({
                    show: 'blind',
                    hide: 'clip',
                    draggable: false,
                    modal: true,
                    minHeight: 300,
                    maxWidth: 400,
                    resizable: false
                });
                return false;
            })
     
        });
        </script>

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

Discussions similaires

  1. Pb plusieurs boites de dialogues
    Par schnito dans le forum MFC
    Réponses: 10
    Dernier message: 25/02/2004, 21h44
  2. [Kylix] Imprimer le contenu d'une boîte de dialogue
    Par cmp-france dans le forum EDI
    Réponses: 13
    Dernier message: 18/10/2003, 20h31
  3. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  4. [MFC] Boîte de dialogue chronométrée
    Par mdriesbach dans le forum MFC
    Réponses: 5
    Dernier message: 18/02/2003, 12h40
  5. Dll et boîte de dialogue MFC
    Par paulj dans le forum MFC
    Réponses: 3
    Dernier message: 19/12/2002, 09h59

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