2012-09-11 94 views
1

我想爲我的網頁的partialview做一個ajax調用,然後在將它放入一個對話窗口之前從它拉取標題和數據。但是,當我創建對話框時,它會正確打開一次,並且會多出6次作爲空白對話框 - 只是標題欄。停止多個對話框窗口被打開

在鉻中,我可以看到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 
    }); 

任何幫助將不勝感激。我一直在牆上撞着我的頭。謝謝。

回答

1

正如你似乎已經理解,這是正常的,因爲jQuery集合中的7個元素打開對話框。

您應該單獨添加腳本元素的網頁,例如使用

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

然後打開對話框只是DIV:

$(divHtml).dialog({ 
+0

是的這個工作。我附加了腳本的對話框加載它後(謝謝!):$ (partialViewWindow).dialog({ 標題:標題, 模式:真, 可調整大小:真實, 拖動:真實, 高度:sheight, width:swidth }) .append(partialScripts); – Tim

0

不知道whthere的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 
}