2012-04-25 100 views
0

我遇到了一個我從未見過的,我們都知道並喜愛的瀏覽器的問題。在此頁面上 - http://weresayingido.com/register - 標籤和幫助文本在IE中無法正常顯示。但是,使用以下代碼快速閃爍Datepicker會導致所有文本正常呈現。IE 7顯示錯誤和jQuery Datepicker

// IE detection hackery 
if ('\v' == 'v') { 
    // Flash the Datepicker UI 
    $('input[name="date"]').focus(); 
    $('input[name="date"]').blur(); 
    setTimeout("$('body').mousedown()", 1); 
} 

(是的,setTimeout的是必要的,否則的日期選擇器塊只是停留在那裏。不,我不知道這是爲什麼,但我很想知道。)

鑑於這是通過一切手段相當hacky黑客,我想知道爲什麼這種情況發生,如果有可能不使用這個欺騙,特別是使用CSS/HTML複製。任何人都碰巧知道這些答案?

tl; dr: jQuery UI Datepicker正在做的事情是迫使文本在IE 7中可見地呈現,否則不會。我可以用CSS/HTML解決這個問題嗎?

相關鏈接:使用

回答

1

IE7不喜歡visibility,並且不考慮body一個真正的元素。

保持您的頁面可見(這對您可能擁有的不幸的非JavaScript用戶來說也更好)。如果你絕對必須在你的style.css文件中使用body {display: none;},並在你的script.js中通過$('body').show()來顯示它。遠離visibility

乾杯。

+0

我把'visibility'換成了我的內容元素,它看起來工作得很好 - 顯然它只是把'body'弄糟了。另外,感謝您指出非JS位 - 我沒有真正考慮過它,因爲真的,誰沒有開啓JS?但是FOUC可能確保任何人都可以使用它。但是,有什麼想法爲什麼Datepicker的東西正在解決可見性問題?仍然不完全得到那一個。 – 2012-04-26 14:57:16

+0

我不確定,但datepicker刷新body元素(或添加一個額外的類,這將強制刷新)。無論如何,很高興聽到它的作品! – Seabass 2012-04-26 23:46:30