【问题标题】:Cannot read property 'setData' of undefined - jQuery UI Touch Punch无法读取未定义的属性“setData” - jQuery UI Touch Punch
【发布时间】:2017-04-20 11:46:35
【问题描述】:

我不确定为什么每当我通过 jQuery UI 调用 setDatagetData 时它是未定义的。

我在做

$(`#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 指的是这个解决方案here

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

Cannot read property 'setData' of undefined

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

【问题讨论】:

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


    【解决方案1】:

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

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

    例子:

    jQuery.event.props.push('dataTransfer');
     event.dataTransfer.setData("Text", event.target.id);
    

    【讨论】:

      【解决方案2】:

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

      注意$.event.props 已在 jQuery 3.0 中删除,因此您需要 请改用$.event.addProp

      例子:

      $(document).ready(function(){
      
          $.event.addProp('dataTransfer');
      
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-03
        • 2012-08-10
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多