1

デモは 72.814 語の価値があるため: http://jsfiddle.net/rudiedirkx/J575b/3/show/

これが最も単純なデモです。3 つのイベント: ドラッグ オーバー、ドラッグ リーブ アンド ドロップ。over期待どおりにleave動作します(クラスが追加および削除されます)。しかし、ドロップはそうではありません!

IE と同様に、ドロップされたファイルをウィンドウで開きます。Chrome では、イベントがキャンセルされ、ドラッグ中のファイルがドロップされます (この場合は無視されます)。

Firefox でドロップ イベントがトリガーされない!?

どうしたの?私はこれがうまくいったと思った...(Chromeではそうです。Opera 11.64ではそうではありません。)

編集

Adriano のおかげで修正: http://jsfiddle.net/rudiedirkx/J575b/5/show/

4

1 に答える 1

2

ondragoverハンドラーを次のように変更します。

drop.ondragover = function() {
    this.classList.add('over');
    return false;
};

return false行に注意してください。Mozilla.orgpreventDefault()から、ドロップを許可するには、関数から false 値を返す必要があります。

于 2012-05-22T14:19:40.767 に答える