Подтвердить что ты не робот

Javascript mouseover при перетаскивании

Я пытаюсь реализовать drag and drop script и ударил стену одной проблемой. Когда вы берете предмет и начинаете перетаскивать его - элемент находится прямо под вашим курсором, а событие onmouseover очень редко срабатывает на элементах ниже. Но я хочу, чтобы другие предметы выделялись, когда я перетаскиваю что-то поверх них. Одно из решений заключалось бы вовсе не в том, чтобы тащить что-либо - таким образом, события мыши будут работать, но это выглядело бы уродливо. Кто-нибудь когда-либо делал что-то подобное и знал, как преодолеть эту проблему?

Если вы думаете о том, чтобы предлагать какой-либо плагин JQuery или что-то в этом роде, не делайте этого. Мне не нужно готовое решение, это образовательное.

4b9b3361

Ответ 1

IMO, чтобы часто запускать событие mouseover, было бы привязкой к событию mouseover к элементу parent всех затронутых элементов или, возможно, самому document, поскольку события они, возможно, являются единственными элементами, которые могут запускать события mouseover.

Затем далее напишите метод hit в своем mouseover событии и активно проверьте положение курсора мыши, посмотрите, идет ли он под границей целевого элемента. Компромисс в удобстве использования и производительности. Вы выбираете.

Мои 2центы.

Или, может быть, вы можете перепроектировать jQuery UI, чтобы увидеть, как они реализуют элемент перетаскивания. Не проверь, но я думаю, что должен быть более мудрый способ.