Почему не отключается обратотчик off()
Вроде простой код, но работать отказывается.
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); такое ощущение что не отключился. |
vuler,
может забыли где поставить отмену всплытия события или 1 раз повесть на body проверку кликнули вне меню => меню закрыть и не мучатся с off |
2-й вариант неприемлем, т.к. не хочется заставлять страницу обрабатывать каждый клик, должно быть только при открытом меню.
|
vuler,
тогда ищите лишнее всплытие |
Часовой пояс GMT +3, время: 20:31. |