0

こんにちは私は、JQueryを使用してダイアログボックスにいくつかのグラフを作成するためのスクリプトをロードしようとしています。

私の見解では、Chromeツールで検査したときにダイアログに表示される部分的な準備と待機があります。

<div id="mydialog">
    @Html.Partial("_fooChart", "Home")
</div>

次に、クリックすると起動するダイアログボックスが表示されます。ダイアログは開きますが、空白です。Chrome Toolsで調べると、部分的な要素がそこにあることがわかります。(要素にはコンテンツが含まれていません。関数はIDに基づいてコンテンツを作成します。)

ダイアログは次のとおりです。

$(function () {

    $('#mydialog').dialog({
        autoOpen: false,
        height: 800,
        width: 800,
        resizable: false,
        open: function () {
            $('#mydialog').load($('#mydialog'), function () {
                fooChartLoad()
            });
        },
        title: 'Foo Chart',
        modal: true,
        buttons: {
            "Close": function () {
                $(this).dialog("close");
            }
        }
    });

    $('#my-button').click(function () {
        $('#mydialog').dialog("open")
    });
});

そして、これが私がロードしようとしているスクリプトです:

function fooChartLoad() {
    setTimeout(function () {
        createFooChart();
        $('#fooChartContainer').bind("kendo:skinChange", function (e) {
            createFooChart();
        });
    }, 200);
}

基本的に、JQueryダイアログのopen-> load関数を使用してダイアログを呼び出したときに、ダイアログがfooChartLoadをロードしない理由を理解しようとしています。

4

1 に答える 1

0

.load がデータ ビジュアルをレンダリングするスクリプトを呼び出す前に、ダイアログ HTML に部分的にデータを入力しようとしましたが、.load は、以下のようにパーシャルとスクリプトを同時にロードしたときにうまく機能するように見えます。

    open: function () {
        $('#fooChartDialog').load($('#fooChartDialog').data('url'), function () {
            fooChartLoad()
        });
于 2013-03-22T12:48:33.540 に答える