@wb_by
Учусь

Почему не работает preventDefault для события drop?

Работаю на Angular 7 и столкнулся с такой проблемой - не могу реализовать drag n drop. preventDefault не срабатывает и файл просто открывается в браузере.
Вообщем разметка в компоненте такая:

<div id="drop-area" (dragover)="preventDefaults($event)" (drop)="handleDrop($event)" (ngClass)="highlight">
...
</div>


И сам обработчик события drop:
preventDefaults(e){

    e.preventDefault();
    e.stopPropagation();

}

handleDrop(e){

    preventDefaults(e);
    console.log(e.dataTransfer.files);

}
  • Вопрос задан
  • 490 просмотров
Решения вопроса 2
hzzzzl
@hzzzzl
e.preventDefault() надо не только на событие drop, но и на dragover

https://stackoverflow.com/questions/8414154/html5-...
Ответ написан
0xD34F
@0xD34F
Вызов метода компонента из другого метода (в отличие от шаблона) требует явного обращения к экземпляру компонента - вы забыли this перед preventDefaults в методе handleDrop.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы