2012-04-24 49 views
3

我使用jQuery對話框中的簡單,典型的使用情況:jQuery對話框默認顯示爲隱藏嗎?

在JavaScript:

$('myDialog').dialog({ 
    modal: true; 
}); 

在HTML:

<div id="myDialog" title="Dialog Title"> 
    Dialog contents here 
</div> 

然而,CSS我使用的控制myDialog div的外觀&外觀託管在我的本地計算機無法訪問的服務器上(不要問爲什麼)。 Ergo,在Firebug中,我發現CSS文件找不到文件的網絡404錯誤。

當我在本地測試這個對話框了,它顯示完美的罰款。不過,我只注意到了myDialog div的內容實際上是顯示我的HTML網頁時執行對話框的調用代碼觸發之前來。

所以,這使我相信兩件事情之一:

  • 一個jQuery的對話框各自的<div>元素不可見/默認是隱藏的;然而,瀏覽器無法找到CSS文件的這種奇怪的情況導致<div>顯示給用戶,甚至在屏幕上彈出對話框;或
  • 一個jQuery的對話框的各個元素<div>默認是可見的,並且我必須採取行動,隱藏在頁面加載

是否有人可以告訴我這這兩個說法是正確的?

如果是前者主張是正確的,那麼問題應該解決本身,當我們的代碼推到我們的開發環境(其中確實有機會獲得CSS文件)。

如果是後者的說法是正確的,那我怎麼才能隱藏在頁面加載的myDialog DIV?

在此先感謝!

回答

10

第二種是或多或少正確。當頁面加載時<div>是可見的,因爲默認情況下HTML中的所有<div>都是可見的。 jQuery僅在以後纔會出現。

您應該簡單地讓<div>默認是隱藏的,並讓.dialog決定何時表現出來,例如:

CSS:

.hidden { display: none } 

HTML:

<div id="myDialog" class="hidden" title="Dialog Title"> 
    Dialog contents here 
</div> 

如果您不要這樣做,那麼如果對話不應該在頁面加載時立即打開,那麼事情會從「不受歡迎」變爲「不可接受」。 See an example

0

你的第二個主張是對的。在div上調用.dialog(),立即顯示對話框