7

HTML5 File Reader 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 
}); 

この問題の解決策は何ですか?

4

1 に答える 1

10

jQuery はdataTransferイベント プロパティを正規化しません。アクセスするには、元のイベントを通過する必要があります。

console.log(e.originalEvent.dataTransfer.files);

dataTransfer次のようにして、jQuery イベント オブジェクトに追加されるように設定することもできます。

jQuery.event.props.push( "dataTransfer" );
于 2013-06-08T03:02:59.810 に答える