Javascript 从第三方组件拖放到计划程序时间线中

Javascript 从第三方组件拖放到计划程序时间线中,javascript,drag-and-drop,dhtmlx,Javascript,Drag And Drop,Dhtmlx,读过 在DHTMLX的站点上,我的结论是我可以从外部DHTMLX组件拖放,但不能从第三方或自行编写的组件拖放 我已经包括了拖放javascript模块: ext/dhtmlxscheduler_outerdrag.js 我创建了一个虚拟事件处理程序: scheduler.attachEvent("onExternalDragIn", function (id, source, event) { return true; }); scheduler.attachEvent("onEx

读过 在DHTMLX的站点上,我的结论是我可以从外部DHTMLX组件拖放,但不能从第三方或自行编写的组件拖放

我已经包括了拖放javascript模块:

ext/dhtmlxscheduler_outerdrag.js 
我创建了一个虚拟事件处理程序:

scheduler.attachEvent("onExternalDragIn", function (id, source, event) {
    return true;
});
scheduler.attachEvent("onExternalDragIn", function (id, source, event) {
    return true;
});
我已经编写了一个附加到组件的拖动事件:

html:

但是。。。我不知道如何使用scheduler timeline组件实现
drop

我试过这个:

html:

。。。但是,当我把东西放到网格上时,只会触发一个通用事件。我(显然)没有得到关于我投到哪个网格单元的信息。我该如何编写代码来知道我在哪一行/哪一列登录?

我在DHTMLX的站点上找到了解决方案

原来我所缺少的只是在我的
drop
方法中调用
getActionData()

function drop(ev) {
    ev.preventDefault();
    var sourceData = ev.dataTransfer.getData("text");   // what we dragged (the tree node in this case)
    var targetData = scheduler.getActionData(ev);       // what we dropped (.date = datetime, .section = id of section)
}
此外,我还需要在调度程序声明的
div
中返回对
drop(event)
的引用:

<div id="scheduler1" class="dhx_cal_container" style="width:100%; height:620px;" 
    ondrop="drop(event)" ondragover="allowDrop(event)">
function allowDrop(ev) {
    ev.preventDefault();
}

function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
}
function drop(ev) {
    ev.preventDefault();
    var sourceData = ev.dataTransfer.getData("text");   // what we dragged (the tree node in this case)
    var targetData = scheduler.getActionData(ev);       // what we dropped (.date = datetime, .section = id of section)
}
<div id="scheduler1" class="dhx_cal_container" style="width:100%; height:620px;" 
    ondrop="drop(event)" ondragover="allowDrop(event)">
scheduler.attachEvent("onExternalDragIn", function (id, source, event) {
    return true;
});