23

以下代码仅适用于第一次单击事件。但是,对于任何后续点击都不会发生任何事情。我在firefox,ie7上测试过这个,但还是一样。我错过了什么吗?

<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>
4

6 回答 6

29

尝试

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

最后一部分有一个开放的arg

于 2009-06-08T11:45:55.157 回答
12

Try this

    $(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
});

And in HTML

<h3 id="clickMe">Open dialog</h3>
<textarea cols="0" rows="0" id="myText" style="display:none">Some hidden text display none</textarea>
于 2009-06-09T08:09:07.243 回答
5
$(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
});

最好使用 .hide() 而不是 .remove()。使用 .remove() 如果您按下链接一次,它会返回 undefined,然后关闭模式,如果再次按下模式链接,它会返回 undefined 和 .remove。

使用 .hide() 它不会,它就像微风一样工作。Ty 为第一手的片段!

于 2012-01-12T10:50:02.343 回答
2

如果您想在对话框中放置一些页面,那么您可以使用这些

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>
于 2012-04-20T07:11:14.970 回答
1

可能会有所帮助... :)

$(document).ready(function() {
    $('#buutonId').on('click', function() {
        $('#modalId').modal('open');
    });
});
于 2016-01-13T09:36:05.573 回答
0

尝试在对话行之前添加此行。

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

这种方法对我有用。似乎“关闭”命令仅使用 .dialog() 再次打开对话框。

以您的代码为例,它会像这样进入(请注意,您可能需要在代码中添加更多内容才能使其有意义):

    <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>
于 2013-04-13T19:08:29.530 回答