我在我的web应用程序中有一堆模态窗口。不幸的是,因为所有的对话框都有相同的大小,所以最高的一个覆盖其他的。自定义打开事件会很好,该事件会检查是否打开了其他对话框,选择最上面的一个,并选择一个(x,y)位置,为最上面的对话框的位置添加一些偏移量。有任何想法吗?jqueryui - 如何获得最顶级对话框的位置?
3
A
回答
0
使用open
event。在我的例子中,它会查找其他对话框,如果它们存在,则将它们堆叠在一起。
$('.dialog').dialog({
open: function(event, ui) {
var dialogs = $('.ui-dialog:visible');
if(dialogs.length > 1){
dialogs.each(function(i, e){
if(i===0){
$(e).css('top', '0px');
}else{
var prevDialog = $(e).prevAll('.ui-dialog:visible');
$(e).css('top', parseInt(prevDialog.css('top')) + parseInt(prevDialog.outerHeight()) + 'px')
}
});
}
}
});
DEMO: http://jsfiddle.net/dirtyd77/8dnh6/1/
希望这有助于让我知道,如果你有任何问题!
1
你可以编写一个函数来安排页面上的所有jQuery UI对话框,并在open函数中调用它,就像这样。
function arrangeDialogs() {
var $dialogs = $('div.ui-dialog:visible');
if($dialogs.length) {
var $first = $($dialogs[0]);
var top = +$first.css('top').replace(/[^-\d\.]/g, '');
var left = +$first.css('left').replace(/[^-\d\.]/g, '');
$('div.ui-dialog').each(function() {
$(this).css({top: top + 'px', left: left + 'px'});
top += 5;
left += 5;
});
}
}
相关问题
- 1. jqueryui对话框定位
- 2. 在对话框顶部克隆jqueryui对话框按钮
- 3. jQuery - 在jqueryUI对话框中获取点击位置
- 4. 我如何在警报对话框中获得当前位置?
- 5. 在JQuery中获取对话框的顶部位置
- 6. 我如何从Google AnalyticsAPI获得顶级位置?
- 7. Django/JqueryUI对话框 - 我如何使用JqueryUI对话框集成Django?
- 8. 关闭jQueryUI的对话框
- 9. jQueryUI的对话框显示
- 10. Chrome和Safari浏览器中jQueryUI对话框位置中断
- 11. 如何为v1.8x设置jQueryUI对话框的背景
- 12. 获得在surfaceview上的点击位置并显示对话框
- 13. JQueryUI对话框大小
- 14. jQueryUI对话框,gridview和updatepanel
- 15. jqueryui对话框灰屏
- 16. MVC jqueryUI模式对话框
- 17. 如何获得away3D的顶级儿童?
- 18. 如何获得PostgreSQL中最顶级的父亲
- 19. 相对于其他对话框的jqueryui对话框
- 20. 选项DIV里面的jQuery对话框顶部固定位置
- 21. Wijmo对话框的高级定位
- 22. 如何从当前位置获得10个最近的位置
- 23. 对话框中的jQueryUI对话框输入不可点击
- 24. load()来jQueryUI的对话框杀死对话框
- 25. 获取最顶级的UIViewController
- 26. 如何设置maven框架顶级pom
- 27. jQuery UI对话框 - 位置
- 28. jQueryUI的对话框TinyMCE的问题
- 29. JqueryUI和Firefox的奇怪问题,内容的位置不在对话框中
- 30. Android获得最佳位置
对上述答案的评论相同:我应该使用.position()(http://api.jqueryui.com/position/)的insess of css吗? – mnowotka 2013-03-26 16:40:05