5

私は以下を持っています: http://jsfiddle.net/KywJT/

function dragEnter(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    $(evt.target).addClass('over');
}

function dragLeave(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    $(evt.target).removeClass('over');
}

function drop(evt) {
   evt.stopPropagation();
   evt.preventDefault();
   $(evt.target).removeClass('over');
}

jQuery( function ( $ ) {

  var $box = $( "#box" );
  $box.bind("dragenter", dragEnter);
  $box.bind("dragleave", dragLeave);
  $box.bind("drop", drop);
});

Chrome バージョン 24.0.1312.52 m と最後の jQuery (1.8.3) を使用しています。ボックスにファイルをドロップすると、ブラウザはデフォルトの動作を妨げません。手伝ってくれませんか?

PS dragexit は非推奨ですよね?

4

3 に答える 3

17

Google Chrome でドロップ イベントを発生させたい場合は、関数が何も実行しない場合でも、ドラッグオーバー リスナーを事前に定義する必要があります。理由はわかりませんが、奇妙です...しかし、明確に識別され、簡単に再現できます:)昨日、そのsh * tで2時間を失いました:/これが役立つことを願っています

于 2013-08-13T05:44:33.743 に答える
5

これで問題が解決するはずです。

jQuery( function ( $ ) {
    var $box = $( "#box" );
    $box.bind("dragenter", dragEnter);
    $box.bind("dragleave", dragLeave);
    $box.bind("drop", drop);

    $(document).bind('dragover', function (e) {
         e.preventDefault();
    });
});
于 2013-01-14T20:19:00.277 に答える