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 :

proprieté "isOpen" d'une fenêtre Dialog


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut proprieté "isOpen" d'une fenêtre Dialog
    Bonjour à tous,

    Il m'arrive encore un truc que j'ai bien du mal à comprendre.

    J'en ai fait une version très simplifiée dont vous trouverez les sources en pièce jointe.

    Voici l'url pour voir de quoi il s'agit : http://www.tip-top-snowboard-skate.com/test/

    lorsqu'on arrive sur cette page (sans changer d'onglet) si on clique sur le bouton : "Ouvrir la fenetre de test." la fenetre s'ouvre précédée d'un alert qui indique l'état "isOpen" de la fenetre (soit : true)

    Après avoir fermé le alert, on peut fermer cette fenêtre avec le bouton fermer puisque l'etat "isOpen" de la fenêtre est : true

    Maintenant, si on change d'onglet et qu'on revient à cet onglet... l'état "isOpen" de la fenetre est passé à false... alors qu'elle est bien ouverte devant nous... et donc plus moyen de la fermer avec le bouton de fermeture... puisqu'elle est considérée comme fermée...

    Est-ce un bug ???

    Ou, y-a-t-il encore kek choz que je fais de travers

    Merci d'avance pour vos réponses
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Es-tu sûr que le contexte de ta variable n'a pas disparu avec le changement d'onglet ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour Bovino et merci de ta réponse,

    En fait j'ai aussi fait le test suivant :

    lors de l'initialisation de la page après un changement d'onglet j'ai ajouté un alert("ok") dans la fonction qui initialise mon "dialog"

    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() {
     
        alert("ok");
     
        $("#dialog").dialog({
    	autoOpen: false,
    	bgiframe: true,
    	height: 300,
    	width: 400,
    	modal: true
    });  
    });
    et à chaque retour à l'onglet, mon alert s'est ouvert...

    de plus lorsque l'on clique sur le bouton d'ouverture de la fenêtre, elle s'ouvre a l'aide de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ouvrir=function(){
    $("#dialog").dialog('open');
    alert('propriete "isOpen" de cette fenetre : '+$('#dialog').dialog("isOpen"));
    };
    par contre quand on veut la refermer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fermer=function(){
    $('#dialog').dialog('close');
    };
    elle ne se ferme pas car la propriété "isOpen" de la fenêtre indique : FALSE

    Bref j'y comprends rien...

  4. #4
    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 : 75
    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 Alexdezark.

    Voici l'exemple, hors php, pas de problème :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="Author" content="Daniel Hagnoul" />
        <title>Page type</title>
        <link rel="stylesheet" type="text/css" href="../lib/humanity/jquery-ui-1.7.2.custom.css" media="screen" />
        <style type="text/css">
            body {
                background-color:#696969;
                color:#000000;
                font-family:Arial, Helvetica, sans-serif;
                font-size:medium;
                font-style:normal;
                font-weight:normal;
                line-height:normal;
                letter-spacing:normal;
            }
            h1,h2,h3,h4,h5 {
                font-family:"Times New Roman", Times, serif;
            }
            div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
                margin:0px;
                padding:0px;
            }
            p {
                padding:6px;
            }
            ul,ol,dl {
                list-style:none;
                padding-left:6px;
                padding-top:6px;
            }
            li {
                padding-bottom:6px;
            }
            div#conteneur {
                width:95%;
                margin:12px auto;
                padding:6px;
                background-color:#FFFFFF;
                color:#000000;
                border:1px solid #666666;
                font-size:0.8em;
            }
        </style>
        <script type="text/javascript" src="../lib/jquery-1.3.2.min.js"></script>
        <script type="text/javascript" src="../lib/jquery-ui-1.7.2.custom.min.js"></script>
        <script type="text/javascript">
        (function($){
     
            fermer = function(){
                $('#dialog').dialog('close');
            };
     
            ouvrir = function(){
                $("#dialog").dialog('open');
                alert('propriete "isOpen" de cette fenetre : ' + $('#dialog').dialog("isOpen"));
            };
     
            $(document).ready(function(){
                $("#tabs").tabs();
     
                $("#dialog").dialog({
                    autoOpen: false,
                    bgiframe: true,
                    height: 300,
                    width: 400,
                    modal: true
                });
            });
     
        })(jQuery);
        </script>
    </head>
    <body>
        <div id="conteneur">
     
            <div id="tabs">
                <ul>
                    <li><a href="#test1">test1</a></li>
                    <li><a href="#test2">test2</a></li>
                </ul>
     
                <div id="test1" style="text-align:center;">
                    <div>
                        <input name="" type="button" value="Ouvrir la fenetre de test." onclick="ouvrir();" />
                    </div>
                    <div id="dialog" title="Fenetre de test." style="text-align:center;">
                        <input name="" type="button" value="Fermer" onclick="fermer();" />
                    </div>
                </div>
     
                <div id="test2">
                    <p style="text-align:center;">Vous pouvez retourner sur l'autre onglet...</p>
                </div>
     
            </div> <!-- fin tabs -->
     
        </div>
    </body>
    </html>

    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.)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour danielhagnoul,

    Merci beaucoup pour ta réponse

    Je vais tester ça et je reviendrai mettre le tag résolu

    Bonne journée à tous

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

Discussions similaires

  1. [C++ Win32] un menu avec une fenêtre Dialog
    Par swo.line dans le forum C++
    Réponses: 0
    Dernier message: 27/04/2008, 11h03
  2. couleur de fond d'une fenêtre Dialog
    Par lermit dans le forum Qt
    Réponses: 4
    Dernier message: 25/05/2007, 09h53

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