この質問に対する私の答えは、イベント バブリングの代わりに イベント キャプチャを使用することです。
一言で言えば、外側の要素からソース要素まで、またはe.stopPropagation()
呼び出されるまで「細流」をキャプチャするイベントです。
イベントのバブリングは、ソース要素から親を通ってドキュメントに到達するまで、または で停止するまで、イベントをバブルアップしe.stopPropagation()
ます。
したがって、ドラッグ エンターに適用するには、実際にはイベントを生成しているのが内側の div であっても、外側の div でイベントを処理する必要があります。
イベント キャプチャを使用して、内部 div の前に外部 Div で ondragenter を起動します。外側の div イベント ハンドラーで、e.stopPropagation を呼び出します。したがって、内側の div イベント ハンドラーが実際に実行されることはありません。
これは、jquery を使用してイベントをキャプチャする方法です。
$("#outerDiv").get(0).addEventListener("ondragenter", function(e){e.stopPropagation()}, true);
最後のパラメーターに注意してください。