HTML5のドラッグアンドドロップに少し問題があります。簡単な方法はありません。基本的に、内部に他の HTML 要素を含む「ボックス」がいくつかあります。親ボックスはドラッグ可能で、互いにドロップできます。
本文にイベントをバインドdragover
して、ページ全体でドラッグ アンド ドロップを処理します。問題は、ボックスをドラッグすると、子要素でイベントがトリガーされることがあり、親がこのイベントをまったく取得しないことです。
これを防ぐ簡単な方法はありますか?
基本的に、マウスがターゲットボックスの領域に入るとすぐにドラッグオーバーイベントが発生するようにします。これを解決するいくつかの方法を知っていますが、それらは本当に醜いので、何か簡単なものがあるのではないかと思っていました。
ご感想ありがとうございます
私がコードで行っていることの短いバージョン:
document.addEventListener('dragenter', function(e) {
if (e.target.className == 'candrophere')
// cancel out "e" to allow drop
}, false);
しかし、私の場合、子要素が「.candrophere」ボックスのほぼ全体を占めているため、正しいターゲットでイベントが発生することはほとんどありません(特にマウスをより速く動かした場合)