0

我正在使用 jQuery UI 将 ASP.NET MVC 5 部分视图呈现到一个空的 div 中:

$(document).ready(function () {
    $(".SiteName").on("click", function (event) {
        event.preventDefault();
        var siteName = $(this).data("sitename");
        //alert(siteName);
        $.ajax({
            url: "/EtlLog/ListSiteJobs?SiteDescription=" + encodeURIComponent(siteName),
            type: "GET",
        })
        .done(function (result) {
            $("#ListSite").html(result).dialog("open");
        });
    });
})

单击后检查 ListSite div,我看到它充满了预期的结果,但我得到一个 jQuery UI 错误:

Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'open' 

我尝试了 .ready() 的各种组合,甚至将正在渲染的 div 嵌套在用于 .dialog() 的 div 中。必须查看有关此错误的每个问题,但仍未找到解决方案。

4

1 回答 1

1

您首先需要“设置”对话框,然后open是它。尝试:

$(document).ready(function () {
    $(".SiteName").on("click", function (event) {
        event.preventDefault();
        var siteName = $(this).data("sitename");
        //alert(siteName);
        $("#ListSite")
           .load("/EtlLog/ListSiteJobs?SiteDescription=" + encodeURIComponent(siteName))
           .dialog({autoOpen:true})
    });
})

PS:我冒昧地使用load().

于 2013-11-05T20:01:39.220 回答