Javascript 未捕获错误:无法在初始化之前调用对话框上的方法;试图调用方法';打开';
我正在使用jQuery UI将ASP.NET MVC 5部分视图渲染为空div: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({
$(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对话框在您的站点中正常工作,等等。