jQuery:datepicker导致整个页面闪烁!

时间:2010-07-12 14:54:33

标签: jquery jquery-ui jquery-ui-datepicker

当我为datepicker设置自定义yearRange(即+ - 100年)时,在datepicker输入字段的focusin事件期间,会出现页面闪烁。另外,当更改datepicker gui中的月/年时,datepicker会闪烁。

我认为这是因为在datepicker中有超过20年的年份,因为日期选择器生成的DOM可能太多了,但我不是100%的。我知道在dateRange中低于+ - 20年,这种闪烁不会发生。

这是我的datepicker代码:

            // add datepicker
   var today = new Date();
   $('companyVarDate').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm-dd',
    yearRange: (today.getFullYear() - 100) + ':' + (today.getFullYear() + 100)
   }); 

有没有办法修复这个闪烁?谢谢!

2 个答案:

答案 0 :(得分:0)

解决方案是不执行today.getFullYear()。设置+和 - 年值时current year is assumed。相反,你想做这样的事情:

var today = new Date();
$('#companyVarDate').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm-dd',
    yearRange: '-100:+100'
});

Firefox 3.6中的闪烁消失了。您可以在此处查看示例:http://jsfiddle.net/KKReb/1/

答案 1 :(得分:0)

你使用的是1.8.7吗?

Firefox中的datePicker整页闪烁存在问题,已在JQuery UI 1.8.7中修复

请参阅http://bugs.jqueryui.com/ticket/5493

变更集https://github.com/jquery/jquery-ui/commit/7832fd8e9c59c6cdc2465bb039c12c87fca85b5d