Поведение спецификации HTML5 по умолчанию заключается в автоматической отмене, а затем перетаскивании действия на dragOver / drageEnter, если вы не отмените (верните false и e.preventDefault ()) это событие самостоятельно. Это вообще не должно отменять действие перетаскивания.
Сначала это кажется немного странным. Но я использую этот код, и он работает.
aDivElement.ondrop = function(e) {
alert("yo");
};
aDivElement.ondragenter = function(e) {
e.dataTransfer.dropEffect = 'move'
e.preventDefault();
return false;
};
aDivElement.ondragover = function (e) {
e.dataTransfer.dropEffect = 'move';
e.preventDefault();
return false;
};