Finesse
@Finesse

Как исправить генерацию лишних событий dragenter и dragleave?

Если к HTML элементу, в котором есть дочерние элементы, привязать слушатель события dragenter или dragleave, то событие будет срабатывать при перетаскивании как через границу как целевого элемента, так и дочерних. Хотя по описанию эти события должны срабатывать при перетаскивании только через границу целевого элемента (по аналогии с событиями mouseover и mouseout).

Наглядно можно посмотреть тут: codepen.io/anon/pen/dYywNz.

Как сделать так, чтобы эти 2 события срабатывали только при перетаскивании через границу элемента, на котором эти события зарегистрированы?

Есть идея привязать на эти события для каждого дочернего элемента обработчик, который будет устанавливать в памяти специальный флаг, который будет говорить обработчику на целевом элементе о том, что событие ложное. Но боюсь, это не будет работать, если граница дочернего элемента совпадает с границей целевого.
  • Вопрос задан
  • 599 просмотров
Пригласить эксперта
Ответы на вопрос 2
@foxiSfox
Для дочерних элементов прописать css свойство:
pointer-events: none;
Ответ написан
Комментировать
Finesse
@Finesse Автор вопроса
С этим хорошо справляется библиотека Dragster.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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