将HTML5元素拖到SVG / D3

时间:2017-03-31 00:42:40

标签: html5 d3.js drag-and-drop

我可以拖动HTML5元素

<div id='item1' draggable='true' ondragstart='onDragStart(event)'></div>

到SVG元素

<circle ondragover='allowDrop(event)'></circle>

这是剧本:

function onDragStart(ev) {
    ev.dataTransfer.setData("text", ev.target.textContent);
}
function allowDrop(ev) {
    ev.preventDefault();
}

// D3
myCircle.on('drop', function(nodeData) {
    // nodeData only gives me information about the destination circle
    console.log('Dropping something unknown on ' + nodeData.data.name);
});

但是如何获得有关被拖动div的信息?

编辑:解决方案

终于想通了!使用d3.event.dataTransfer

myCircle.on('drop', function(nodeData) {
    console.log('Dropping ' + d3.event.dataTransfer.getData('text') + ' on ' + nodeData.data.name);
});

0 个答案:

没有答案