Javascript 从第三方组件拖放到计划程序时间线中
读过 在DHTMLX的站点上,我的结论是我可以从外部DHTMLX组件拖放,但不能从第三方或自行编写的组件拖放 我已经包括了拖放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
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;
});