2010-10-01 107 views
1

由於我在做多個對話框,所以我遇到了困難。這裏是我的代碼:jquery ui對話框,有多個對話框影響位置

var dialog_count = 3; 

$(function() { 

    var left_value = 0; 
    var top_value = 0; 
    for(var i = 1; i < dialog_count+1; i++) { 
     $('.dialog_' + i).dialog({ width: 263, position: [800 - left_value, 800 - top_value] }); 
     left_value = left_value + 40; 
     top_value = top_value + 140; 
    } 
}); 

它應該做的:疊放整齊每個對話框上的指定位置

它做什麼:不知何故重新定位爲新的被添加在每個對話框。

我試圖玩弄它,這就是我所做的,在3個步驟

$('.dialog_1').dialog({ width: 263, position: [300, 700] }); 

,這是正確的位置,現在我要添加第二個之一。

$('.dialog_1').dialog({ width: 263, position: [300, 700] }); 
$('.dialog_2').dialog({ width: 263, position: [250, 550] }); 

da heck?它自己移動了另一個......現在他們都沒有正確定位。

$('.dialog_1').dialog({ width: 263, position: [300, 700] }); 
$('.dialog_2').dialog({ width: 263, position: [250, 550] }); 
$('.dialog_3').dialog({ width: 263, position: [200, 400] }); 

好吧,現在看起來很時髦。你真的要自己嘗試瞭解什麼我談論...;!(

感謝你提前

+0

只是我的假設已經在jsfiddle中測試過,你想創建一個級聯對話效果?如果是這樣,錯誤發生,因爲你已經在你的位置切換left_value和top_value,請嘗試使用:position:[800 - top_value,800 - left_value] – lock 2010-10-01 00:40:43

+0

是的,我試圖創建級聯效果,其中一個在彼此之上。 – tpae 2010-10-01 16:05:45

回答

0

禁用的AutoOpen,並且必須設置爲通過期權頭寸後,並打電話打開方法,已成功運作。

原來,autoOpen功能不會讓對話框完全置於彼此之上,因此它會相應地移動它們。

var dialog_count = 3; 

$(function() { 

    var left_value = 0; 
    var top_value = 0; 
    for(var i = 1; i < dialog_count+1; i++) { 
     $('.dialog_' + i).dialog({ width: 263, position: [500, 500], autoOpen: false }); 
    } 
    for(var i = 1; i < dialog_count+1; i++) { 
     $('.dialog_' + i).dialog("option", "position", [500,500]); 
     $('.dialog_' + i).dialog("open"); 
    } 
}); 
+0

您可以接受您自己的答案,以表明這是您所達成的解決方案。 – 2010-10-06 16:21:09

0

運行示例代碼,我沒有看到原來的一招我注意到他們不正確地疊加,但是我覺得那是因爲你要添加140一40到另一個。這可能是一個錯字,但。

top_value = top_value + 140; // Try + 40 instead 
+0

我特意這樣定位它,以產生層疊效果,就好像一張照片在另一張照片上。 – tpae 2010-10-01 16:06:07