1

我正在尝试对我的网页的部分视图进行 ajax 调用,然后从中提取标题和数据,然后再将其放入对话框窗口中。但是,当我创建对话框时,它会正确打开一次,然后作为空对话框再打开 6 次 - 只是标题栏。

在 chrome 中,我可以看到 partialView 包含 HTMLDivElement 和 7 个 HTMLScriptElements,以便解释多次打开 - 但是,如果我只为该 div 元素打开对话框,它将不会加载脚本(因此查找和选项卡不起作用)。

  $.ajax(url)
  .success(function (partialViewHtml) {
     // get page data

     $(partialViewHtml).dialog({
        title: title,
        modal: true,
        resizable: true,
        draggable: true,
        height: sheight,
        width: swidth
     });

任何帮助将不胜感激。一段时间以来,我一直在用头撞墙。谢谢。

4

2 回答 2

1

正如您似乎已经理解的那样,这是正常的,因为您打开对话框的 jQuery 集合中有 7 个元素。

您应该将脚本元素单独添加到页面中,例如使用

$('body').append(scriptElementHTML);

然后在 div 上打开您的对话框:

$(divHtml).dialog({
于 2012-09-11T08:49:59.763 回答
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
}
于 2012-09-11T08:55:53.037 回答