У меня есть 3 div, содержащих друг друга, как матрешка.
Для всех div у меня есть функция, связанная с событием mousenter. Теперь перемещение мыши медленно снизу и вход в третий слой приведет к следующим событиям:
- Mouseenter первый слой
- Mouseenter слой два
- Mouseenter третий слой
Это идеально и ожидаемый результат, так как вам нужно сначала войти на первый уровень, чтобы войти на второй уровень и т. д.
Однако, если я сделаю то же самое с быстрым движением мыши, порядок будет неопределенным, например:
- Mouseenter слой два
- Mouseenter первый слой
- Mouseenter третий слой
Что для меня не имеет особого смысла - как ваша мышь может войти во второй слой до входа в первый слой?
В любом случае, вопрос: есть ли способ заставить jQuery или javascript в целом запускать эти события в их естественном порядке? Если нет, можете ли вы предложить мне обходной путь, например, как-то опубликовать сортировку событий из моей функции обработчика событий и отложить те, которые были вызваны преждевременно?
Тестовый код размещен по адресу http://jsbin.com/ibepu6/4/.