0

autoOpen を false に設定した後、jquery-ui ダイアログ ボックスにボタンを表示する際に問題が発生しました。

このようなボタンでダイアログボックスを設定しました。

$(document).ready(function() {
    $("#dialog-form").dialog({
        autoOpen: false,
        modal: true,
        buttons: {
            Ok: function() {
                $(this).dialog("close");
            }
        }
    });
});

ページ上の何かをクリックした後、この行を実行してダイアログ ボックスを開きます。

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

ただし、ダイアログ ボックスにはボタンが表示されません。autoOpen: trueを設定すると、ダイアログボックスがすぐに開いたときにボタンが表示されることがわかりました。呼び出しによってダイアログボックスを開く必要があるときにボタンを表示するにはどうすればよいですか (つまり、設定autoOpen: false)?

4

1 に答える 1

2

APIによると、元のコードも機能するはずです。APIの例:

....
<script>
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click(function() {
    $( "#dialog" ).dialog( "open" );
});
</script>
...

ドキュメントの準備ができたときにコードが初期化されていません...ドキュメントの準備ができたときにコードが初期化されていない場合、ウィジェットのタグを含む部分をまだロードできず、ウィジェットは初期化されません。新しいイニシャルを呼び出すと$( "#dialog-form" ).dialog( "open" );、ボタンが表示されないように適用されます。

JS初期化コードをdocument.readyセクション内に配置します

$(function() {

  $("#dialog-form").dialog({
    autoOpen: false,
    modal: true,
    buttons: {
        Ok: function() {
            $(this).dialog("close");
        }
    }
  });

});
于 2012-10-15T08:31:05.527 に答える