Вроде простой код, но работать отказывается.
function three_list_1_hide(event){
dom=event.target
if ($(dom).parents('.three_list_1').length==0){
$('body').off('click',three_list_1_hide);
$(this).find('.three_list_1').stop().slideUp(function(){
});
}
}
function three_list_1_change(){
$(this).prev().stop().slideDown(
function(){ $('body').on('click',three_list_1_hide)}
)}
$(document).ready(function() {
$(".three_list_1_show_but").on('click', three_list_1_change);
При клике на кнопку three_list_1_show_but, показывается меню, которое находится в списке выше и по завершению этого показа, создается обработчик, чтобы при клике в любую область отличную от этого меню, оно автоматически скрывалось. На первом этапе все хорошо, но вот при скрытии меню и повторном нажатим на three_list_1_show_but, ничего не происходит, меню появляется и сразу исчезает - $('body').off('click',three_list_1_hide); такое ощущение что не отключился.