dhtmlx scheduler scheduler.getState()。date在Chrome与Firefox中的反应不同

时间:2014-09-05 09:07:12

标签: jquery scheduler dhtmlx

我正在尝试访问日历的当前日期以调用一段代码来调整日历上的first_hour和last_hour。这是代码。

$(".dhx_cal_today_button, .dhx_cal_prev_button, .dhx_cal_next_button")
                .click(
                        function() {
var formatFunc = scheduler.date.date_to_str("%D");
                            var dayTarget = formatFunc(scheduler.getState().date).toUpperCase();

                            scheduler.config.first_hour = dayScheduleAM[dayTarget];
                            scheduler.config.last_hour = daySchedulePM[dayTarget];
                            scheduler.config.mark_now = true;
                            scheduler.setCurrentView();
                            scheduler.updateView();

                        });

现在出现了奇怪的部分。当我在firefox中运行它时,调度程序实际上已经移动到下一天或前一天,而在Chrome中它仍然显示最后一天。例如,如果我在星期一,然后单击下一步,则firefox debug会将scheduler.getState()。date显示为星期二,但chrome会显示星期一。

知道发生了什么事吗?另外,还有另一种方法可以在调用.click之前等待dhtmlx js完成处理吗?我不想编写+ 1 / -1天的逻辑,因为这会遇到firefox的问题,谁知道其他未来版本的浏览器。

1 个答案:

答案 0 :(得分:0)

问题可能是由事件处理顺序引起的(首先是调度程序或自定义事件处理程序)

您可以将处理程序附加到onBeforeViewChange事件

,而不是附加处理程序
scheduler.attachEvent("onBeforeViewChange", function(m,d, nm, nd){
  if (d*1 != nd*1{
       //active date was changed, place the custom logic here
  }
  return true;
});