当我进行多个对话时,我遇到了困难。这是我的代码:
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] });
哎呀?它自己移动了另一个......现在它们都没有正确定位。
$('.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 :(得分:0)
运行示例代码,我没有看到原来的一个动作。我注意到它们没有正确堆叠,但我认为这是因为你将140加到另一个而40加到另一个。这可能是一个错字。
top_value = top_value + 140; // Try + 40 instead
答案 1 :(得分:0)
禁用autoOpen后,必须通过选项设置位置,并调用open方法,成功运行。
事实证明,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");
}
});