 
			
				11.03.2012, 13:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2010 
					
					
					
						Сообщений: 49
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				отсрочить проверку отлавливания события
			 
			
		
		
		
		Здравствуйте. 
Скажите, есть ли возможность как-то отсрочить отлавливание события (в моем случае, mouseleave)? Подчеркну, не срабатывания кода по данному событию, а именно факта его наступления. Чтобы выпадающее меню не закрывалось, если человек случайно на полсекунды вывел мышку из блока и вернулся назад. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 13:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Server 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.09.2011 
					
					
					
						Сообщений: 252
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Так, как вы сформулировали-нет, нельзя. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2009 
					
					
					
						Сообщений: 579
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 нет, отсрочить событие нельзя. можно по событию с задержкой вызвать программно другое событие/функцию, которая скроет меню. 
		
	
		
		
		
		
		
			
				__________________ 
				С моих слов записано верно.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2010 
					
					
					
						Сообщений: 49
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 T-sh, я думал об этом, но непонятно как в этой функции проверять не вернулась ли мышь на блок меню. По координатам, конечно можно, но "костыльно" как-то это. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:18
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2009 
					
					
					
						Сообщений: 579
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Polkan
			 
		
	 | 
 
	| 
		T-sh, я думал об этом, но непонятно как в этой функции проверять не вернулась ли мышь на блок меню. По координатам, конечно можно, но "костыльно" как-то это.
	 | 
 
	
 
 ну, проверить, не вернулась ли мышь не так уж сложно   
оборачивайте выпавшее меню div'ом и отслеживайте на нём событие.
 
получатся вложенные события:
 
с блока А ушла мышь{ 
       на блок Б пришла мышь{ ничего не делать; остановить выполнение;} 
       иначе {скрыть} 
}  
		
	
		
		
		
		
		
			
				__________________ 
				С моих слов записано верно.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:23
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2009 
					
					
					
						Сообщений: 579
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		забыл добавить: оберточный блок шире и выше менюшного пикселей эдак на 50.   иначе не поймает, а больше и не надо.. случайно промахнуться больше чем на 50 пикселей редко бывает)  
		
	
		
		
		
		
		
			
				__________________ 
				С моих слов записано верно.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:26
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Server 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.09.2011 
					
					
					
						Сообщений: 252
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 вы можете по mouseleave вешать var interval=таймаут на 0.5 секунд на код, который меню закрывает, interval сохранить. 
Если мышь вернулась-то есть это те события, по которым меню раскрывается, и если interval не null-тогда clearInterval(interval), что отменит складывание меню. 
ничего сложного. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 14:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2009 
					
					
					
						Сообщений: 579
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 кстати, да. Rootpassword прав.  
 
я тут совсем нелогичные костыли изобретаю. 
		
	
		
		
		
		
		
			
				__________________ 
				С моих слов записано верно.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 15:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2010 
					
					
					
						Сообщений: 49
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Rootpassword, T-sh, спасибо за советы. Но пока не выходит. С clearTimeout загвоздка в том, что при перемещении по меню пункты с которых ушла мышь скрываются, одновременно те, на которые пришла - показываются. Все это обрабатывается двумя функциями - mouseleave и mouseenter. И получается, что, вешая на "те события, по которым меню раскрывается" clearTimeout, я решаю проблему со скрытием меню при выходе за границу, но получаю еще бОльшую - отменяю действие скрытия меню при перемещении с пункта на пункт. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.03.2012, 15:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Лаборант :-) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.11.2011 
					
					
					
						Сообщений: 806
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		у библиотек бывают, при назначении события, удобные опции 
например в Ext есть параметр buffer: xxx милисекунд 
если за это время было несколько событий mouseout, то вызовется только одно и можно закрывать меню или что-то другое
 
<script src="http://yandex.st/ext-core/3.1.0/ext-core.min.js"></script>
<div id="box" style="width: 100px; height: 100px; background: #cfc;"></div>
<script>
	Ext.get("box").on('mouseout', function (event, el) {
		alert('можно скрывать');
	}, this, {buffer: 1000});
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |