【发布时间】:2017-01-02 16:44:37
【问题描述】:
我创建了一个 jQuery 日期选择器,它有一些日期(周末、节假日)。事实是,对这些日子进行着色的决定取决于一个 ajax 调用,该调用返回必须为一个月中的哪些日子着色。
当我单击按钮更改月份时,ajax 调用完成,它返回要着色的日期,日期选择器闪烁,然后正确显示月份。我想在 ajax 调用完成后显示新月份,而不是更早。有什么办法可以避免闪烁吗?它在 Internet Explorer 中似乎可以正常工作,但在 Firefox 中无法正常工作。
编辑
如果您单击更改月份按钮,日期选择器会为该月中的每一天调用 beforeShowDay 来呈现它。如果您在 console.log 行中放置一个断点(jsfiddle 示例如下),您将看到 datepicker 已关闭,并且直到每天绘制它才会呈现。就我而言,我想保持旧月份直到新月份完全绘制。
在下面你可以看到的例子中,日历的绘制速度非常快,月份的日期渲染得如此之快以至于它似乎是即时的,但是如果你执行一些检索数据库数据的 ajax 调用决定每天的颜色,月份闪烁。与 Internet Explorer 不同,这个问题在 Firefox 中发生在我身上。
我该如何解决?
小提琴示例:
http://jsfiddle.net/b6V3W/370/
beforeShowDay: tratarDiasEspeciales,
function tratarDiasEspeciales(date){
ajax call to decide the colour of the cell
if(condition){
//colour the day with blue
return[true,'blue']
}else{
//colour the day with red
return[true,'red']
}
}
【问题讨论】:
-
你能用你的代码创建一个 jsfiddle 吗?
-
@AminurRashid 代码已添加。
标签: jquery ajax jquery-ui datepicker