我可以拖动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);
});