【问题标题】:jQuery: datepicker causes entire page to flicker!jQuery:datepicker 导致整个页面闪烁!
【发布时间】:2010-07-12 14:54:32
【问题描述】:

当我为我的 datepicker 设置自定义 yearRange(即 +- 100 年)时,在 datepicker 输入字段上的 focusin 事件期间,会发生页面闪烁。此外,当更改日期选择器 gui 中的月/年时,日期选择器会闪烁。

我认为这是因为在 datepicker yearRange 中超过 +-20 年对于 datepicker 生成的 DOM 可能太多了,但我不是 100% 的。我确实知道在 dateRange 中低于 +-20 年,这种闪烁不会发生。

这是我的日期选择器代码:

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

有没有办法解决这个闪烁?谢谢!

【问题讨论】:

  • 这两种方法生成的都不多,当每个页面显示在选择器中时,计算就完成了。您在哪个浏览器中看到闪烁?
  • firefox 3.6.3 和 jQuery UI Datepicker 1.8
  • @Nick Craver @Garrett - 在 Firefox 3.6 和 jQuery UI 1.8 中,我也看到了闪烁。在此处查看 jsFiddle 示例:jsfiddle.net/KKReb

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


【解决方案1】:

解决方案是不执行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/

【讨论】:

    【解决方案2】:

    您使用的是 1.8.7 吗?

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

    http://bugs.jqueryui.com/ticket/5493

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2019-01-11
      • 2014-09-29
      • 2014-03-24
      相关资源
      最近更新 更多