我正在尝试访问日历的当前日期以调用一段代码来调整日历上的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的问题,谁知道其他未来版本的浏览器。
答案 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;
});