我遇到了一个我从未见过的,我们都知道并喜爱的浏览器的问题。在此页面上 - 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解决这个问题吗?
相关链接:使用
- 页固定的jQuery日期选择器:http://weresayingido.com/register
- 页无日期选择器破解呈现:http://weresayingido.com/manage/login
我把'visibility'换成了我的内容元素,它看起来工作得很好 - 显然它只是把'body'弄糟了。另外,感谢您指出非JS位 - 我没有真正考虑过它,因为真的,谁没有开启JS?但是FOUC可能确保任何人都可以使用它。但是,有什么想法为什么Datepicker的东西正在解决可见性问题?仍然不完全得到那一个。 – 2012-04-26 14:57:16
我不确定,但datepicker刷新body元素(或添加一个额外的类,这将强制刷新)。无论如何,很高兴听到它的作品! – Seabass 2012-04-26 23:46:30