我在我的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對話框scrollTop將對話框內容滾動到頂部
- 2. jqueryui對話框定位
- 3. 在對話框頂部克隆jqueryui對話框按鈕
- 4. jQuery - 在jqueryUI對話框中獲取點擊位置
- 5. 我如何在警報對話框中獲得當前位置?
- 6. 我如何從Google AnalyticsAPI獲得頂級位置?
- 7. 在JQuery中獲取對話框的頂部位置
- 8. 如何設置對話框的位置?
- 9. Django/JqueryUI對話框 - 我如何使用JqueryUI對話框集成Django?
- 10. 找到位於NSPoint位置下的最頂級NSView對象
- 11. jQueryUI的對話框顯示
- 12. 關閉jQueryUI的對話框
- 13. jQueryUI的對話框,在KnockoutJS
- 14. Chrome和Safari瀏覽器中jQueryUI對話框位置中斷
- 15. 如何爲v1.8x設置jQueryUI對話框的背景
- 16. 如何設置具有特定ID的jQueryUI對話框標題?
- 17. 獲取並設置頂級位置
- 18. 獲得在surfaceview上的點擊位置並顯示對話框
- 19. 如何從子對話框和父對話框獲得焦點
- 20. 如何獲得away3D的頂級兒童?
- 21. 如何獲得頂級viewcontroller的標題?
- 22. 上的焦點jQueryUI的對話框滾動位置重置另一個對話框
- 23. jQueryUI對話框,gridview和updatepanel
- 24. JQueryUI對話框大小
- 25. JqueryUI確認對話框
- 26. MVC jqueryUI模式對話框
- 27. jqueryui對話框灰屏
- 28. 複雜jqueryui對話框
- 29. jQueryUI對話框不顯示
- 30. 擴展JQueryUI對話框
對上述答案的評論相同:我應該使用.position()(http://api.jqueryui.com/position/)的insess of css嗎? – mnowotka 2013-03-26 16:40:05