Ouvrir le Dialogue modal de Jquery sur l'événement de clic

le code ci-dessous ne fonctionne bien que pour l'Événement du premier clic. Cependant pour n'importe quel clic ultérieur rien arrive. J'ai testé ça sur firefox, ie7 mais c'est toujours le même. Ai-je raté quelque chose?

<script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
        $('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>
20
demandé sur Victor Grazi 2009-06-08 15:38:46

6 réponses

$(document).ready(function () {
    //$('#dialog').dialog(); 
    $('#dialog_link').click(function () {
        $('#dialog').dialog('open');
        return false;
    });
});

il existe un ouvert arg dans la dernière partie

27
répondu almog.ori 2013-10-31 15:05:31

Essayez ceci

    $(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();


    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").remove();
                }
            });
    }); //close click
});

et en HTML

<h3 id="clickMe">Open dialog</h3>
<textarea cols="0" rows="0" id="myText" style="display:none">Some hidden text display none</textarea>
11
répondu TigerTiger 2009-06-09 08:09:07
$(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();

    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").hide();
                }
            });
    }); //close click
});

le Meilleur à utiliser .hide() au lieu de .supprimer.)( Avec. remove () il retourne non défini si vous avez appuyé sur le lien une fois, puis fermez le modal et si vous appuyez à nouveau sur le lien modal, il retourne non défini avec .supprimer.

.hide() il ne marche pas et il fonctionne comme un jeu d'enfant. Ty pour l'extrait de code dans la première main!

5
répondu Lucas Welander 2012-01-12 10:51:47

si vous voulez mettre une page dans la boîte de dialogue, alors vous pouvez utiliser ces

function Popup()
{
 $("#pop").load('login.html').dialog({
 height: 625,
 width: 600,
 modal:true,
 close: function(event,ui){
     $("pop").dialog('destroy');

        }
 }); 

}

HTML:

<Div id="pop"  style="display:none;">

</Div>
2
répondu Rahul Kumar 2012-04-20 07:11:14

Peut être utile... :)

$(document).ready(function() {
    $('#buutonId').on('click', function() {
        $('#modalId').modal('open');
    });
});
1
répondu Kalpesh Desai 2016-01-13 10:14:58

essayez d'ajouter cette ligne avant votre ligne de dialogue.

$( "#dialog" ).dialog( "open" );

Cette méthode a fonctionné pour moi. Il semble que la commande" Fermer " gâche à nouveau l'ouverture du dialogue avec seulement le .dialogue. )(

en utilisant votre code comme exemple, il s'introduirait comme ceci (notez que vous pourriez avoir besoin d'ajouter plus à votre code pour qu'il ait du sens):

    <script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
$( "#dialog" ).dialog( "open" );        
$('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>
0
répondu dwlorimer 2013-04-13 19:08:29