DHTMLX Scheduler中标题点击的事件处理程序

时间:2015-11-10 14:23:37

标签: javascript dhtmlx dhtmlx-scheduler

我们使用DHTMLX Scheduler,我们希望为week viewunit view等中的标题点击附加听众。我们找不到办法执行此操作。

screenshot http://i67.tinypic.com/jj3e37.jpg

我们还需要在我们的监听器中显示执行单击的日期。

我们如何使用DHTMLX Scheduler执行此操作?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

DHTMLX Scheduler提供的事件在用户单击x轴上的单元格一次或双击时触发(仅在“时间轴”视图中):

onXScaleClick

onXScaleDblClick