|  | 
	| 
	| 
	
	| 
		
	| 
			
			 
			
				06.08.2008, 10:57
			
			
			
		 |  
	|  |  
	| 
				Меню Onclick
			 Как можно исправить меню выстроенное по событию onmouseover на меню раскрывающееся по клику, причем 2 и 3 подуровни ТОЖЕ ДОЛЖНЫ ОТКРЫВАТЬСЯ ПО КЛИКУ. 
листинг :-)
 
navHover = function() {
	var lis = document.getElementById("navmenu").getElementsByTagName("LI");
	for (var i=0; i<lis.length; i++) {
		lis[i].onmouseover=function() {
			this.className+=" iehover";
		}
		lis[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", navHover);
			 Последний раз редактировалось Андрей Параничев, 06.08.2008 в 14:51.
				Причина: Пользуйтесь bb-кодами для оформления листингов кода в теле сообщения
 |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 11:15
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| onmouseover заменить на onclick   |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 13:41
			
			
			
		 |  
	|  |  
	| Не все так просто, пробовал, в этом случае старые уже открытые элементы не закрываются, получается черти что. |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 14:00
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| ну так в вопросе же было "на меню раскрывающееся по клику"На закрывающееся по второму клику - в вопросе не было!
 
 Учитесь правильно формулировать вопросы!!!
 |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 14:30
			
			
			
		 |  
	|  |  
	| причем 2 и 3 подуровни ТОЖЕ ДОЛЖНЫ ОТКРЫВАТЬСЯ ПО КЛИКУ.(см. 1 сообщение темы).
 Ладно, по существу, самому мне кажется что варианта нет, по крайней мере я не знаю.
 Отсюда другой вопрос:
 - как прописать в файле css (к этому меню), что бы меню усчезало не сразу после отвода мышки, а была задержка, т.к. проблема появилась из-за того, что меню исчезает сразу как убрали мышку, а менюха многоуровневая, большая.
 |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 14:56
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| 
navHover = function() {
var lis = document.getElementById("navmenu").getElementsByTagName("LI");
for (var i=0,l=is.length; i<l; i++) {
  lis[i].onclick=function() {
    var reg = /iehover$/;
    if (reg.test(this.className))
      this.className=this.className.replace(reg, "");
    else this.className+=" iehover";
  }
}
}
if (window.attachEvent) window.attachEvent("onload", navHover);
 |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 15:13
			
			
			
		 |  
	|  |  
	| 
	
 
	| Сообщение от ZoNT   |  
	| 
for (var i=0,l=is.length; i<l; i++) {
 |  
	
 В условии точно все верно? |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 16:06
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| for (var i=0,l=lis.length; i<l; i++) {
 естественно lis, а не is
 |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 18:14
			
			
			
		 |  
	|  |  
	| Блин, все вроде написано правильно и красиво, просмотрел вроде все отлично выглядит, а на деле как то ничего не происходит, меню вообще не реагирует |  |  
	| 
		
	| 
			
			 
			
				06.08.2008, 18:33
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| ну кинь ссылку на страничку, я посмотрю, где что глючит... |  |  |  |