私はhtml5のドラッグアンドドロップで少し問題があります。私はそれから簡単な道を見ていない。基本的に私は内部にいくつかの他のHTML要素といくつかの "ボックス"があります。親ボックスはドラッグ可能であり、お互いにドロップすることができます。html5:子供がドラッグイベントを妨げるのを防ぐ方法はありますか
私は全ページのドラッグ・ドロップを処理するために、ボディにdragover
イベントをバインドします。問題は、ボックスの上にドラッグすると、イベントが子要素でトリガされることがあり、親がこのイベントをまったく取得しないことです。
これを防ぐ簡単な方法はありますか?
基本的には、マウスがターゲットボックスの領域に入ると同時にdragoverイベントを発生させます。私はこれを解決するいくつかの方法を知っていますが、実際には醜いです。私は多分単純なものがあるのだろうかと思っていました。そう
document.addEventListener('dragenter', function(e) {
if (e.target.className == 'candrophere')
// cancel out "e" to allow drop
}, false);
しかし、私の場合の子要素はほぼ全体の「.candrophere」ボックスを取っている:
あなたの思考のおかげで、私はコードでやっているの
ショートバージョン
電子ので:イベントは、ほぼ正しいターゲット(私はより速く、マウスを移動する場合は特に)
人々があなたを助けることができるように失敗したコードを投稿するべきです。 – Nelson
擬似コードで気を散らすことなく更新 – Marius
dragenterイベントの代わりにdragoverイベントを使用するだけでこれを解決できました –