javascript - 未定義のプロパティ 'setData' を読み取ることができません - jQuery UI Touch Punch
jQuery UIを通して呼び出すと、なぜsetDataとgetDataが未定義になるのか、私はよくわかりません。
私はやっています
$(`#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 は、こちらの解決策を参照しています
しかし、私はまだ同じ結果を受け取っています。
Cannot read property 'setData' of undefined私もTypeScriptを使っています(どれくらい違いがあるのかはよく分かりません)。
回答 #1
これはjQueryの問題であり、ページが読み込まれたとき、またはdataTransferを使用する前に以下のコードを追加することで解決できます
jQuery.event.props.push('dataTransfer');
例:
jQuery.event.props.push('dataTransfer');
event.dataTransfer.setData("Text", event.target.id);
回答 #2
これはjQueryのラッパーのためです。Eventオブジェクトに 'dataTransfer' を追加する必要があります。
注意:
$.event.propsは jQuery 3.0 で削除されたため、代わりに$.event.addPropを使用する必要があります。
例:
$(document).ready(function(){
$.event.addProp('dataTransfer');
});
