РЕДАКТИРОВАТЬ : так как приведенные ниже решения не сработали, я добавил больше кода для ясности.
Я динамически генерирую следующий HTML. Это в основном промежуток, который позиционируется так, чтобы при каждом нажатии productControl всплывал элемент productMenuHolder с меню. После отпускания мыши меню исчезает.
<span class="productControl">
<div class="productMenuHolder" style="display:none;">
<ul class="productMenuList">
<li class="productMenuItem">Menu Item 1</li>
<li class="productMenuItem">Menu Item 2</li>
<li class="productMenuItem">Menu Item 3</li>
</ul>
</div>
</span>
Ниже приведен пример jQuery, который всплывает в меню и скрывает его, когда мышь покидает область меню.
//shows the hover image
$(".productControl").live('hover',function (){$(this).toggleClass("productControl_hover");});
//pops the menu when productControl is clicked
$(".productControl").live('click',function(){$(this).find('.productMenuHolder').show();});
//hides the menu when the mouse leaves the menu
$('.productMenuHolder').live('mouseleave',function() {$(this).hide();});
//what i want is to hide the menu when a list item is clicked, however none of the solutions (e.g. closest, find, parent) seem to hide it!
$('.productMenuHolder li').live('click',function(){
//why are none of the solutions hiding it?
$(this).closest('.productMenuList').hide();
$(this).closest('.productMenuHolder').hide();
});