2

したがって、このJavascript関数を呼び出すボタンがUIにあります。

function OpenHistory(transactionId, spanThatWasClicked)
    {   
        $.ajax({
            type: "POST",
            url: "<%= Url.Action("ViewHistory", "Indications") %>",
            data : { transactionId : transactionId },
            success: function(data) {
                $("#history").html(data);
                $("#history").dialog({
                    modal: true,
                    resizable: false,
                    title: "Valuation History",
                    width: 850,
                    height: 500,
                    autoOpen: true,
                    buttons: { "Close": function () { $(this).dialog("close"); } }
                });
            }
        });
    }

その#history設定は、ページ上で次のようになります。<div id="history"></div>

初めてクリックすると、AJAX呼び出しが行われ、ダイアログが開き、すべてが完璧に見えます。

ダイアログを閉じる

2回目にクリックすると、何も起こりません。AJAX呼び出しとすべてを行いますが、画面にダイアログは表示されません。

ページを更新

前回と同様に、最初のクリックのみで再び機能するようになります。

これはダイアログの奇妙さですか?

ありがとう。

4

3 に答える 3

2

成功コードを次のように変更してみてください。

      success: function(data) {
            $("#history").html(data)
             .dialog({
                modal: true,
                resizable: false,
                title: "Valuation History",
                width: 850,
                height: 500,
                autoOpen: true,
                buttons: { "Close": function () { $(this).dialog("close"); } }
            }).dialog('open');
        }

このようにして、呼び出しで開いていることを確認しますdialog('open')

于 2011-05-04T18:37:10.340 に答える
0

autoOpen後続の呼び出しでがトリガーされない場合、ダイアログはすでに作成されているためだと思います。ajax呼び出しを追加$("#history").dialog("open")してみて、それが役立つかどうかを確認してください。元のダイアログ作成コードを2回呼び出さないように、最適化を追加することができます(ある種のブール変数)

于 2011-05-04T18:36:01.230 に答える
0

ダイアログを作成するには、これを一度だけ呼び出す必要があります

           $("#history").dialog({
                modal: true,
                resizable: false,
                title: "Valuation History",
                width: 850,
                height: 500,
                autoOpen: true,
                buttons: { "Close": function () { $(this).dialog("close"); } }
            });

ダイアログ呼び出しを開くには$("#history").dialog("open");

ページが最初にロードされたときにダイアログを作成autoOpen: falseし、必要に応じて開くことをお勧めします

于 2011-05-04T18:37:05.847 に答える