 
			
				04.05.2011, 16:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.05.2011 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Выделение элемента при наведении
			 
			
		
		
		
		Задача такая: нужно при наведении на любой элемент страницы выделить его, но, выделить именно 1 элемент. 
Моя реализация чуть ниже. Проблема в том, что при наведении он выделяет и родителей элемента.   
function MouseOver()
			{
				this.style.background="#FFFF00";
				this.style.color="#000";
				this.style.cursor="pointer";
				this.style.border="1px solid #FF0000";
			}
			
			function MouseOut()
			{
				this.style.background="";
				this.style.color="";
				this.style.border="";
			}
			
			function start() {
				var elements = document.getElementsByTagName("*");
				for(i=0; i<elements.length; i++)
				{
					if(elements[i].tagName!="BODY" && elements[i].tagName!="HTML")
					{
						elements[i].onmouseover = MouseOver;
						elements[i].onmouseout = MouseOut;
					}
				}
			}
			window.onload = start;
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось setter, 04.05.2011 в 16:31.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 16:37
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.11.2009 
					
					
					
						Сообщений: 1,101
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<html>
<head>
<script type="text/javascript" language="javascript">
function over(e) {
	var e = e || window.event;
	var elem = e.srcElement || e.target;
	var relatedTarget = e.relatedTarget || e.fromElement
	relatedTarget.style.background="";
    relatedTarget.style.color="";
    relatedTarget.style.border="";
	
	if (elem.tagName == 'BODY')
		return;
	elem.style.background="#FFFF00";
    elem.style.color="#000";
    elem.style.cursor="pointer";
    elem.style.border="1px solid #FF0000";
}
</script>
</head>
<body onmouseover="over(event);">
<div>
	<img src="http://javascript.ru/forum/images/smilies/smile.gif" /><br />
	<span>text text text text</span><br />
	<div>other text other text other text</div>
</div>
<img src="http://javascript.ru/forum/images/smilies/tongue.gif" />
<span>bla bla bla bla</span>
</body>
</html>
 
		
	
		
		
		
		
		
			
				__________________ 
				"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."   
Мой сертификат :-D клацай
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось walik, 04.05.2011 в 16:46.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 16:51
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.05.2011 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 спасибо, а как можно использовать без "<body onmouseover", а прямо в js? и исключить тег body из выделения 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 16:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.11.2009 
					
					
					
						Сообщений: 1,101
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
window.onload = function() {
	document.body.onmouseover = over;
}
elem.tagName - имя тега текущего элемента  
		
	
		
		
		
		
		
			
				__________________ 
				"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."   
Мой сертификат :-D клацай
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 17:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.05.2011 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 спасибо большое. 
последний вопрос. не знаете случайно, как найти позицию (номер символа) того самого элемента в исходном коде по клику? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 17:15
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.11.2009 
					
					
					
						Сообщений: 1,101
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		1. Что значит 
	
 
	| 
		
			Сообщение от setter
			
		
	 | 
 
	| 
		позицию (номер символа)
	 | 
 
	
 
 ?
 
2. По клику - это уже другое событие, тут уже надо еще и onclick вешать на документ.  
		
	
		
		
		
		
		
			
				__________________ 
				"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."   
Мой сертификат :-D клацай
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 17:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Пионэр 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.11.2009 
					
					
					
						Сообщений: 1,322
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 walik, 
e.fromElement и e.relatedTarget могут быть null, например, если курсор наведен из-за пределов окна. А это грозит ошибкой "не могу присвоить свойство null/undefined". 
Если же курсор уводится за окно, событие mouseover, емнимс, не вызовется. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 17:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.11.2009 
					
					
					
						Сообщений: 1,101
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		1.  
	
 
	| 
		
			Сообщение от subzey
			
		
	 | 
 
	| 
		e.fromElement и e.relatedTarget могут быть null, например, если курсор наведен из-за пределов окна.
	 | 
 
	
 
 Об этом не подумал))
 
2.
 
	
 
	| 
		
			Сообщение от subzey
			
		
	 | 
 
	| 
		Если же курсор уводится за окно, событие mouseover, емнимс, не вызовется.
	 | 
 
	
 
 Для этого уже можно разбить на 2 функции (mouseover и mouseout) 
Если сделать так, то первая проблема сразу решается.
 
В любом случае не собирался писать идеальный код, просто хотел показать более компактный (и по моему более правильный)  вариант чем предложенный  setter
    
		
	
		
		
		
		
		
			
				__________________ 
				"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."   
Мой сертификат :-D клацай
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось walik, 04.05.2011 в 17:59.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 19:06
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.05.2011 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от walik
			 
		
	 | 
 
	
		1. Что значит 
 
?
	 | 
 
	
 
 ну например есть следующий код
 
<html>
	<body>
		<h1>text</h1>
	</body>
</html>
 
и при нажатии на text нужно узнать его позицию (в коде) 
например в этом коде позиция будет 22 
думаю конечно что это не реально, но все же может есть какой-либо способ?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.05.2011, 19:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.11.2009 
					
					
					
						Сообщений: 1,101
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Что то я не вникаю)))  откуда взята цифра (позиция) 22 ? 
Если взять с корня то он идет 3-й по счету: html -> body -> h1 
		
	
		
		
		
		
		
			
				__________________ 
				"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."   
Мой сертификат :-D клацай
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |