 
			
				12.02.2013, 21:09
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.02.2013 
					
					
					
						Сообщений: 1
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Вытащить id от дива для использования в JS
			 
			
		
		
		
		Ребят , прошу помощи, так как Javascript вообще не понимаю. 
Есть конопки (div c айдишниками) и связанные с ними разделы (тоже div с айдишниками) при нажатии на кнопку раздел становится видимым.. 
Как оптимизировать этот код, чтобы на каждую кнопку не писать hide, show , сейчас код выглядит так :
 
$(document).ready(function(){
	$("#button_server").click(function(){
	$("#global_menu_rootser").hide();
	$("#global_menu_users").hide();
	$("#global_menu_server").show();});
	
	$("#button_users").click(function(){
	$("#global_menu_rootser").hide();
	$("#global_menu_server").hide();
	$("#global_menu_users").show();});
	......
});
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 21:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
$(document).ready(function(){
function toggle(a,b){
   if(b){$(a).show();return}
   $(a).hide();
}
$("#button_users,#button_users").click(function(){
   // Массив селекторов, следущее 0 или 1; 0 - cкрываем, 1 - открываем
   a='#global_menu_rootser,0,#global_menu_users,0,#global_menu_server,0,#global_menu_users,1'.split(',');
   for(var i=0; i<a.length; i+=2) {
	toggle(a[i],a[i+1])
   }
});
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Deff, 13.02.2013 в 00:35.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 22:03
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Deff, хрень полная. Еще больше запутываешь человека. 
xfavorit, приведите кусок своего html-кода с меню. 
Все можно сделать гораздо проще используя более подходящие селекторы и атрибуты (возможно лучше вместо кнопок использовать ссылки с href, указывающем на нужный id блока?) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 22:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
function Toggle(a,b){
   if(b){$(a).show();return}
   $(a).hide();
}
Трэш. Во-первых все проще с тернартым оператором. Во вторых - откуда такое именование - с большой буквы? Это же не C# ))) 
И что за a, b ? Гениальные названия переменных )))
 
function toggle(el, show){
   $(el)[show ? 'show' : 'hide']();
}
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 22:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 danik.js, 
 В компрессоре один фиг ужмёт  до a,b 
И не интересная задача 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 22:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ну давай тогда сразу писать примерно так: 
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a])...
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.02.2013, 22:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		   $(el)[show ? 'show' : 'hide']();
	 | 
 
	
 
 Метода 
  if(b){$(a).show();return} 
 
наработанная и подходит для много проверок
 
  if(b){$(a).show();return}  
  if(b==0{$(a).toggle();return} 
  if(b==-1){$(a).hide();return} 
 
Так что писал даже не задумываясь  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2013, 08:46
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
if(b){$(a).show();return} 
if(b==0{$(a).toggle();return}
if(b==-1){$(a).hide();return}
Тоже говнецом попахивает   
3-е условие не выполнится никогда ) 
Для "много проверок" существует switch:
 
switch (b)
{
    case 1:
        $(a).show();
        break;
    case 0:
        $(a).toggle();
        break;
    case -1:
        $(a).hide();
        break;
}
Или даже:
 
$(a)[{1:'show', 0:'toggle', -1:'hide'}[b]]();
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2013, 09:12
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Столько всего понаписали... А этого 
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		приведите кусок своего html-кода с меню
	 | 
 
	
 
 Так и не дождались от автора...    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.02.2013, 11:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		danik.js,
     Ти чо злыдень такой с утра ? 
Просто пишите красивый код, ежели стоящий - будет взят за пример. Я не позиционирую себя как гуру скриптов, мне интересны сами задачи.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |