文件数据未在 js drop 事件中传递
file data not getting passed on js drop event
我在class中有几个方法。
Class 个实例正在动态创建。
其中一个实例将事件侦听器添加到 'drop' 事件。该 drop 事件侦听器函数应该将图像数据传递给 class 实例中的 handleDrop()
,但我在处理函数的 dt = e.dataTransfer,
行得到 cannot read property 'dataTransfer' of undefined
。
我正在尝试关注 https://soshace.com/the-ultimate-guide-to-drag-and-drop-image-uploading-with-pure-javascript/
数据侦听器代码
canvasWrapper.addEventListener('drop', canvasContext.preventDefault, false);
canvasWrapper.addEventListener('drop', function () {
canvasContext.handleDrop(this.event), false;
});
处理函数
handleDrop(e) {
let dt;
console.log('we have a drop');
dt = e.dataTransfer,
console.log('dt', dt);
files = dt.files;
完整代码在https://github.com/tnewhook/CartoonBuilder/blob/master/cartoonBuilder.js
答案很简单:我需要将 handleDrop()
中的两行组合成 files = e.dataTransfer.files,
。出于某种原因,它喜欢单个 var 而不是两个。
我在class中有几个方法。
Class 个实例正在动态创建。
其中一个实例将事件侦听器添加到 'drop' 事件。该 drop 事件侦听器函数应该将图像数据传递给 class 实例中的 handleDrop()
,但我在处理函数的 dt = e.dataTransfer,
行得到 cannot read property 'dataTransfer' of undefined
。
我正在尝试关注 https://soshace.com/the-ultimate-guide-to-drag-and-drop-image-uploading-with-pure-javascript/
数据侦听器代码
canvasWrapper.addEventListener('drop', canvasContext.preventDefault, false);
canvasWrapper.addEventListener('drop', function () {
canvasContext.handleDrop(this.event), false;
});
处理函数
handleDrop(e) {
let dt;
console.log('we have a drop');
dt = e.dataTransfer,
console.log('dt', dt);
files = dt.files;
完整代码在https://github.com/tnewhook/CartoonBuilder/blob/master/cartoonBuilder.js
答案很简单:我需要将 handleDrop()
中的两行组合成 files = e.dataTransfer.files,
。出于某种原因,它喜欢单个 var 而不是两个。