我正在尝试对我的网页进行部分查看进行ajax调用,然后在将其放入对话窗口之前从中提取标题和数据。但是,当我创建对话框时,它会正确打开一次,再打开6次作为空对话框 - 只是标题栏。
在chrome中,我可以看到partialView包含HTMLDivElement和7个HTMLScriptElements,因此多个帐户会打开 - 但是如果我只为那个div元素打开Dialog,它将不会加载脚本(因此查找和制表符不会工作)。
$.ajax(url)
.success(function (partialViewHtml) {
// get page data
$(partialViewHtml).dialog({
title: title,
modal: true,
resizable: true,
draggable: true,
height: sheight,
width: swidth
});
非常感谢任何帮助。我一直在墙上撞了一会儿。感谢。
答案 0 :(得分:1)
正如您似乎已经理解的那样,这是正常的,因为您打开对话框的jQuery集合中有7个元素。
您应该将脚本元素分别添加到页面中,例如使用
$('body').append(scriptElementHTML);
然后在div上打开你的对话框:
$(divHtml).dialog({
答案 1 :(得分:0)
不确定jQuery ui有关闭所有对话框的方法,但我们可以这样做
function createDailog () {
$(".ui-dialog-content").dialog("close"); // close all dialogs
$("<div>fdfdsfdsfdsfds<div>").dialog({
title: "title",
modal: true,
resizable: true,
draggable: true,
height: 200,
width: 200
});
}
或者你可以提出这样的条件
if(!$(".ui-dialog-content:visible").length){
// show dialog
}