Похоже, что это сообщение было давно, но, надеюсь, еще есть люди, заинтересованные в обходе. Я столкнулся с этой проблемой при создании нового сайта, над которым я работаю. На нем находится слайдер продукта, и для каждого продукта при наведении курсора на продукт появляется большой информационный пузырь с информацией о продукте, раскрывающийся список для выбора вариантов покупки и кнопка покупки. Я быстро обнаружил, что всякий раз, когда моя мышь покидает начальную видимую область меню выбора (т.е. пытается выбрать опцию), весь пузырь исчезает.
Ответ (спасибо, умные люди, которые разработали jQuery), был весь о пузырях событий. Я знал, что самый простой способ решить проблему - это временно «отключить» состояние выхода при наведении. К счастью, jQuery имеет встроенную функциональность, чтобы справиться с пузырями событий (они называют это распространением).
По сути, только с новой строкой кода или около того я прикрепил метод к событию "onmouseleave" раскрывающегося списка (при наведении курсора на один из параметров в списке выбора это событие вызывается надежно - я попытался несколько других событий, но это казалось довольно солидным), что отключало распространение событий (т. е. родительские элементы не могли слышать о событии «onmouseleave» из выпадающего списка).
Вот и все! Решение было намного более элегантным, чем я ожидал. Затем, когда мышь покидает пузырь, состояние выхода при наведении мыши нормально срабатывает, и сайт начинает свою работу. Вот исправление (я поместил его в документ. Уже):
$(document).ready(function(){
$(".dropdownClassName select").mouseleave(function(event){
event.stopPropagation();
});
});