我们使用DHTMLX Scheduler
并且我们想附加一个侦听器,用于单击 , 等中的标题week view
。unit view
我们没有找到这样做的方法。
我们还需要在我们的监听器中包含执行点击的日期。
我们怎样才能做到这一点DHTMLX Scheduler
?
我们使用DHTMLX Scheduler
并且我们想附加一个侦听器,用于单击 , 等中的标题week view
。unit view
我们没有找到这样做的方法。
我们还需要在我们的监听器中包含执行点击的日期。
我们怎样才能做到这一点DHTMLX Scheduler
?
DHTMLX Scheduler
不提供点击标题的事件,因此为了做到这一点,您需要先更改视图的模板:
var toStr = scheduler.date.date_to_str(scheduler.config.day_date);
scheduler.templates.week_scale_date = (dt) => "<span data-scale-date='" + dt.valueOf() + "'>" + toStr(dt) + "</span>";
scheduler.templates.unit_scale_text = (key, label) => "<span data-scale-date='0' data-scale-unitId='" + key + "'>" + label + "</span>";
// ...
更改模板后,您可以附加一个事件侦听#scheduler_here
器并过滤标题的点击:
document.getElementById("scheduler_here").addEventListener("click", (evt) => {
var event = evt || window.event;
var target = event.target || event.srcElement;
if (target && target.nodeName === "SPAN" && target.parentElement && target.parentElement.classList && target.parentElement.classList.contains("dhx_scale_bar")) {
var dateStr = target.getAttribute("data-scale-date");
if (dateStr) {
var dateValue = parseInt(dateStr, 10);
var date = dateValue === 0 ? scheduler.getState().date : new Date(dateValue);
var unitId = target.getAttribute("data-scale-unitId") ? target.getAttribute("data-scale-unitId") : {{your unit id in unit view}};
// ...
}
evt.stopPropagation();
evt.preventDefault();
}
}, false);