Meine Antwort auf diese Frage ist event capturing statt ev zu verwenden ent sprudelnd.
Kurz gesagt, Ereigniserfassung "tröpfelt" vom äußeren Element, zum Quellelement oder bis e.stopPropagation()
aufgerufen wird.
Ereignis Sprudeln Blasen Ereignisse aus dem Quellelement über Eltern, bis es das Dokument erreicht oder mit e.stopPropagation()
gestoppt wird.
Also, um das Ziehen zu übernehmen, möchten Sie, dass das äußere div das Ereignis behandelt, obwohl es tatsächlich das innere div ist, das das Ereignis generiert.
Mit Event Capturing wird der Ondragenter im Outer Div vor dem inneren Div ausgelöst. Im Ereignishandler outer div rufen Sie e.stopPropagation auf. Der innere div-Ereignishandler wird also nie ausgeführt.
This ist, wie jQuery zu verwenden, um das Ereignis zu erfassen:
$("#outerDiv").get(0).addEventListener("ondragenter", function(e){e.stopPropagation()}, true);
Hinweis der letzte Parameter.
Leider, wenn' # container 'vollständig mit seinen Kindern abgedeckt ist, schlägt dieser Test immer fehl. Ist es nicht möglich, Kinder mit 'Dragent' nicht zu binden - nur' # container'? – hsz
Ok, ich habe das mit deiner Antwort losgeworden. Jedoch bin ich noch neugierig darauf, nur Eltern mit einem Ereignis zu binden. ;-) Vielen Dank! – hsz
Ihr Problem könnte mit https://bugs.webkit.org/show_bug.cgi?id=66547 zusammenhängen –