1

我们使用DHTMLX Scheduler并且我们想附加一个侦听器,用于单击 , 等中的标题week viewunit view我们没有找到这样做的方法。

截屏

我们还需要在我们的监听器中包含执行点击的日期。

我们怎样才能做到这一点DHTMLX Scheduler

4

2 回答 2

3

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);
于 2015-11-13T22:53:26.247 回答
1

DHTMLX 调度程序提供了当用户在 x 轴上单击或双击单元格时触发的事件(仅限时间轴视图):

onXScaleClick

onXScaleDblClick

于 2019-12-04T13:53:23.757 回答