Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2014, 22:44
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Почему не отключается обратотчик 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); такое ощущение что не отключился.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2014, 23:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

vuler,

может забыли где поставить отмену всплытия события
или 1 раз повесть на body проверку кликнули вне меню => меню закрыть и не мучатся с off

Последний раз редактировалось рони, 28.06.2014 в 23:02.
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2014, 23:10
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

2-й вариант неприемлем, т.к. не хочется заставлять страницу обрабатывать каждый клик, должно быть только при открытом меню.
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2014, 23:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

vuler,
тогда ищите лишнее всплытие
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОЧЕМУ ВСЁ ТАК СЛОЖНО !? der-coder Оффтопик 10 18.06.2014 13:58
Вызов конструктора без new. Почему не со всеми работает? danik.js Javascript под браузер 2 23.02.2014 00:09
Почему некоторые операторы возвращают значения, а не ссылки? dump Общие вопросы Javascript 15 25.07.2012 17:28
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41