2

我不确定为什么setData并且getData每当我通过 jQuery UI 调用它时都未定义。

我在做

$(`#selector`).draggable({
            start: function(event: any) {
                drag(event);
            },
            stop: function(event: any) {
                console.log('stopped');
            }
        });

在拖动()中:

drag(event: any) {
    event.originalEvent.dataTransfer.setData("text, application/x-moz-node", event.target.id);
}

这里originalEvent是参考这个解决方案

但是,我仍然收到相同的结果。

Cannot read property 'setData' of undefined

我也在使用打字稿(不确定这有多大的不同)。

4

2 回答 2

3

这是 jQuery 的问题,您可以通过在页面加载时或在使用 dataTransfer 之前添加以下代码来解决它

jQuery.event.props.push('dataTransfer');

例子:

jQuery.event.props.push('dataTransfer');
 event.dataTransfer.setData("Text", event.target.id);
于 2017-04-18T06:13:56.740 回答
1

这是因为 jQuery 包装器。我们必须将“dataTransfer”添加到 Event 对象。

注意$.event.props在 jQuery 3.0 中被删除,所以你需要使用它$.event.addProp

例子:

$(document).ready(function(){

    $.event.addProp('dataTransfer');

});
于 2017-05-23T05:28:38.553 回答