2017-01-10 78 views
0

我在沒有問題的對話框中顯示網格。但問題是,對話框阻止了整個頁面的背景。無論如何要避免它?即一旦顯示對話框,用戶仍然可以訪問諸如Tab等頁面元素。Dojo對話框不想阻止整個頁面

+0

認爲有一個屬性調用模式,將啓用或禁用背景 – tik27

回答

0

它可能通過使用CSS。當您創建Dialog併爲其提供id媒體資源時,它將創建跨越整個頁面的底層<div>,因此您無法點擊除新媒體<div>以外的任何內容。幸運的是,你可以隱藏與CSS這樣的元素,因爲該元素的ID爲#<ID of dialog>_underlay產生,你可以簡單地做到這一點是這樣的:

require(['dijit/Dialog', 'dijit/form/Button', 'dojo/domReady!'], function(Dialog, Button) { 
 
    var dialog = new Dialog({ 
 
    id: 'test', 
 
    title: 'Test', 
 
    content: 'Hello world' 
 
    }); 
 

 
    new Button({}, 'btn').on('click', function() { 
 
    dialog.show(); 
 
    }); 
 
});
/* "test" is the ID of the dialog, so I need to use #test_underlay */ 
 
#test_underlay { 
 
    /* Setting this property to none hides the element */ 
 
    display: none; 
 
}
<head> 
 
    <link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css" rel="stylesheet" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="async: false"></script> 
 
</head> 
 

 
<body class="claro"> 
 
    <button id="btn">Click me</button> 
 
    <input type="checkbox" />Can you still select me? 
 
</body>

+0

使用此解決方案會導致與dgrids表等某些其他窗口小部件發生某些事件衝突。 –

+0

@ g00glen00b:讓我今天嘗試一下這個解決方案,並將您更新回來。感謝您花時間回答這個問題。 –

0

相反的對話框中你可以的使用Dojo的FloatingPane。它的工作方式大致相同,您可以使用它下面的對象。

+0

這應該是一個評論,而不是一個答案! –

+0

我只能評論我的答案。當我嘗試網站時告訴我_'你必須有50的聲望才能發表評論。'__ – Stefano

+0

是的,然後獲得聲望! –