$(document).unbind(click) убивает live? 
		
		
		
		Здравствуйте. 
	Подскажите, почему такая конструкция из jquery.contextMenu.js 
$(document).click( function() {
$(document).unbind('click').unbind('keypress'); // когда комментирую эту строку, всё работает, за исключением нормальной функциональности контекстного меню, естественно (оно сразу скрывается при открытии, так как событие click обрабатывается и при нажатии правой кнопки мышки...
$(menu).fadeOut(o.outSpeed);
return false;
});
приводит после первого открывания контекстного меню и щелчке по "документу" к неработоспособности такой конструкции: 
$('#panel > div.myclass').live('click', function(e) {...});
? Как лучше выкрутиться?  | 
	
		
 Попробуйте применять unbind (и, есстественно, навешивать нужные обработчики) не к document, а к document.body. 
	 | 
	
		
 Благодарю, вроде как заработало :) 
	А где можно почитать на эту тему, чтобы понять в чём конкретно причина? Или это чисто по своему опыту с jQuery?  | 
	
		
 live вешает обычный обработчик события на document и смотрит, равен ли event.target (элемент, на котором произошло событие) заданному и если да, то выполняет ф-цию. unbind же снимает все обработчики с документа, в т. ч. и те, что навешаны через live. Вообще-то, для снятия live-обработчиков применяется метод die, но это только если снимать обработчик с обычного элемента, а не документа, unbind же не убивает live-события для них. А вот если сделать это с самим документом, то возникает такая вот заморочка. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Вполне логичное поведение. Вы же не указываете, какой именно обработчик снять, поэтому снимаются все. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 При использовании такого решения, как "document.body" - потом начались другие проблемы с другими плагинами. Помогло использование delegate() вместо live(). 
	 | 
	
		
 если в коде приходится пользоватся .unbind то советую также использовать namespace 
	.live тоже должен их понимать  | 
| Часовой пояс GMT +3, время: 17:14. |