无法读取属性' setData'未定义的 - jQuery UI Touch Punch

时间:2016-12-05 23:21:25

标签: javascript jquery jquery-ui typescript jquery-ui-touch-punch

我不确定为什么setDatagetData在我通过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

我也在使用打字稿(不确定这会产生多大的差别)。

2 个答案:

答案 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');

});