Если к HTML элементу, в котором есть дочерние элементы, привязать слушатель события
dragenter
или
dragleave
, то событие будет срабатывать при перетаскивании как через границу как целевого элемента, так и дочерних. Хотя по описанию эти события должны срабатывать при перетаскивании только через границу целевого элемента (по аналогии с событиями
mouseover
и
mouseout
).
Наглядно можно посмотреть тут:
codepen.io/anon/pen/dYywNz.
Как сделать так, чтобы эти 2 события срабатывали только при перетаскивании через границу элемента, на котором эти события зарегистрированы?
Есть идея привязать на эти события для каждого дочернего элемента обработчик, который будет устанавливать в памяти специальный флаг, который будет говорить обработчику на целевом элементе о том, что событие ложное. Но боюсь, это не будет работать, если граница дочернего элемента совпадает с границей целевого.