我不确定为什么setData
和getData
在我通过jQuery UI调用它时是未定义的。
我在做
$(`#selector`).draggable({
start: function(event: any) {
drag(event);
},
stop: function(event: any) {
console.log('stopped');
}
});
并在drag()中:
drag(event: any) {
event.originalEvent.dataTransfer.setData("text, application/x-moz-node", event.target.id);
}
originalEvent
引用此解决方案here
但是,我仍然收到相同的结果。
Cannot read property 'setData' of undefined
我也在使用打字稿(不确定这会产生多大的差别)。
答案 0 :(得分:3)
这是jQuery的一个问题,您可以通过在页面加载时或使用dataTransfer之前添加以下代码来解决它
jQuery.event.props.push('dataTransfer');
示例:
jQuery.event.props.push('dataTransfer');
event.dataTransfer.setData("Text", event.target.id);
答案 1 :(得分:0)
这是因为jQuery包装器。我们必须将'dataTransfer'添加到Event对象。
注意:jQuery 3.0中删除了
$.event.props
,因此您需要这样做 请改用$.event.addProp
。
示例:
$(document).ready(function(){
$.event.addProp('dataTransfer');
});