停止打开多个对话窗口

时间:2012-09-11 08:38:44

标签: javascript html ajax

我正在尝试对我的网页进行部分查看进行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
     });

非常感谢任何帮助。我一直在墙上撞了一会儿。感谢。

2 个答案:

答案 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
}