Javascript 未捕获错误:无法在初始化之前调用对话框上的方法;试图调用方法';打开';

Javascript 未捕获错误:无法在初始化之前调用对话框上的方法;试图调用方法';打开';,javascript,jquery,asp.net-mvc,jquery-ui,asp.net-mvc-5,Javascript,Jquery,Asp.net Mvc,Jquery Ui,Asp.net Mvc 5,我正在使用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({

我正在使用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中。必须查看了有关此错误的所有问题,但仍然没有找到解决方案。

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

$(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})
    });
})

p.S:我冒昧地使用
load()
缩短了您的代码,非常感谢!但为什么对话是透明的?我期待的是默认值……没有任何线索说明为什么在当前的代码示例中它是透明的,因为它们都与样式无关。完成标准步骤。确保包含jQueryUICSS文件。确保您的控件没有无效的html或被破坏的内联css规则。确保其他示例ui对话框在您的站点中正常工作,等等。