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

Всем спасибо за советы.
Не знаю вот на правильном ли я пути теперь.
Присваиваю элементу уникальный номер, чтобы обработчик удалялся только для него. Вообще уникальности пока не много, т.к. в одну секунду может создаться несколько таких элементов с одинаковыми номерами. Вариант добавить - рандом к метке времени. Или сделать вообще массив где для каждой метки времени будут сохраняться все примененные рандомы, тогда будет действительно уникальное значение для каждого вызова функции.
Но может я опять полез в дебри и есть решение попроще? Может для каждого ДОМ элемента существует свой скрытый ID номер, чтобы можно было их отличать?
function now_verbose(){
	return new Date().getTime();
}


jQuery.fn.hide_by_click=function(){
	unic=now_verbose();
	$(this).attr('unic_id',unic);
	$('body').on('click.'+unic,{elem:$(this)},function (e){
			if ($(e.target).closest(e.data.elem).length) return;
				e.data.elem.slideUp('500');
				$('body').off('click.'+e.data.elem.attr('unic_id'));
	})
}
Ответить с цитированием