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

最後の部分にオープン引数があります

于 2009-06-08T11:45:55.157 に答える
12

これを試して

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

そして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
});

.remove()の代わりに.hide()を使用することをお勧めします。.remove()を使用すると、リンクを1回押してからモーダルを閉じた場合は未定義を返し、モーダルリンクをもう一度押すと.removeを使用して未定義を返します。

.hide()を使用すると、それは機能せず、そよ風のように機能します。直接スニペットを入力してください。

于 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" );

この方法は私のために働いた。「close」コマンドは、.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 に答える