0

您好我正在尝试加载脚本以使用 JQuery 在对话框中创建一些图表。

在我看来,当我使用 Chrome 工具检查它时,对话框中有部分准备就绪和等待:

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

然后我有一个在点击时触发的对话框,对话框打开但它是空白的。如果您使用 Chrome 工具对其进行检查,您可以看到部分中的元素在那里。(元素不包含内容,该函数将根据 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 回答