我发现了一个处理HTML5文件阅读器API的javascript。它是用纯javascript编写的,我正在将其转换为jQuery脚本。但是我在这一点上卡住了。
如此:
document.getElementById('drop-area').addEventListener('drop', function(e) {
e.preventDefault();
e.stopPropagation();
console.log(e.dataTransfer.files); // outputs the right stuff
}, false);
这失败:
$('#drop-area').on('drop', function(e) {
e.preventDefault();
e.stopPropagation();
console.log(e.dataTransfer.files); // ERROR: e.dataTransfer is undefined
});
这个问题的解决方案是什么?
jQuery不规范dataTransfer
事件属性,要访问它,你必须通过原始事件。
console.log(e.originalEvent.dataTransfer.files);
您也可以设置它,以便dataTransfer
被添加到jQuery事件对象,通过以下操作。
jQuery.event.props.push( "dataTransfer" );