0

解決策が見つからなかったので、ここに質問を書きます:(

このコードを作成して、ページに UPLOAD DIV を作成します。

私のコードコードのJSフィドル

$(document).on('dragover dragleave dragenter', '#drop-files', function(e) {
    e.preventDefault();
    e.stopPropagation();
    return false;
});

$(document).on('drop', '#drop-files', function(e) {
    if (e.originalEvent.dataTransfer) {
        if (e.originalEvent.dataTransfer.files.length) {
            e.preventDefault();
            e.stopPropagation();
            if (e.originalEvent.dataTransfer.files.length <= 3) {
                var files = e.originalEvent.dataTransfer.files;
                                                  $.each(files, function(index, file) {
                        if (!!window.FileReader) {
....

CHROME、FIREFOX、およびIE10を備えたFIDDLEで正常に動作します。すべてが同時に読み込まれるためです。

しかし、「drop-files」 DIV が AJAX でページに読み込まれ、本文の後に JS ファイルが読み込まれると、Firefox と IE では機能せず、Chrome でのみ正常に機能します。なぜだか分からない?$(document)on('drop' ... を使用して正常に動作させるため:(

CHROMEでは、ファイルの数で私に警告します... FIREFOXとIE10では、ブラウザでファイルを開きます:(

解決策を教えてください。どうもありがとう

4

2 に答える 2

1

最後に、最初の投稿で投稿したコードは正常に機能します。

前に次の行を Firefox に追加するだけです。

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

「ドロップ」イベントは、DIV を追加した後、DOM で正常に機能します ...

私のように Ajax を作成する$(document).on('drop', .... 場合は、スクリプトの前に DIV を追加する場合に使用する必要があります。$('#DIV').drop(....

イベントリストと互換性との良好なリンク: http://www.quirksmode.org/dom/events/#t18

于 2013-09-05T06:26:47.970 に答える