无法调用未定义的方法'setData'

时间:2013-10-09 18:27:35

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

编辑1

使用dataTransfer.setData方法使其有效!

http://jsfiddle.net/UH7Sf/1/

d3.event.dataTransfer.setData('type',type);  

我在d3.event

中使用方法setData和getData时遇到了问题

我必须在顶部使用可拖动的img元素进行div,并在第二个使用一些删除功能。

d3.select('img').on('dragstart', function() { 
    var type = d3.select(this).attr('type');
    console.log("Drag starts with "+ type);
d3.event.transfer.setData('type',type);    
});

d3.select('.drop').on('drop', function() {
    d3.event.preventDefault();
    var type = d3.event.transfer.getData('type');
    console.log("Drag ends with "+ type);      
});

d3.select('.drop').on('dragover', function() {
    d3.event.preventDefault();
});

这是小提琴:http://jsfiddle.net/UH7Sf/

使用d3还有另一种方法可以做到这一点(在拖放过程中传输数据)?

1 个答案:

答案 0 :(得分:0)

名为event的{​​{1}}内没有任何对象。你可以做的一件事是尝试transfer,但我不认为这也是你想要的,因为dragstart和drop事件是两个不同的事件对象。

您可以使用单独的局部变量。 E.g。

event.setData()