Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2008, 17:35
Новичок на форуме
Отправить личное сообщение для Antonio Посмотреть профиль Найти все сообщения от Antonio
 
Регистрация: 27.05.2008
Сообщений: 7

глюк с getElementById
всем привет! уже полтора часа бьюсь над проблемой: не работает эта функция в данном скрипте
Код:
var Menus = {   corporate: {name:"corporate", sub_menus:["insurance", "business", "departments"]},
				private: {name: "private"},
				insurance: {name: "insurance"},
				business: {name: "business"},
				departments: {name: "departments"}
};
function $(id){
return document.getElementById(id);
}

function nn(){

}
nn.prototype.nu=function (){this.ns=$('insurance');
this.ns.style.display="none";
}
nnn=new nn();
	function Menu(elementt){
		
		this.element=$('insurance');
		this.sub_menu="";
		this.status="tratata";
		this.name=elementt;
		}
		
		
function Enclosed(Menus){
	
var i=0;
this.Menu_array = new Object();
this.Menus=Menus;
	for (var n in Menus){
		i++;
		this.Menu_array[Menus[n].name] = new Menu(Menus[n].name);
		
		}
	
	}	
	
Enclosed.prototype.show= function(){
	
	var name=arguments[0];
	var odj = new this.Menu_array[name];
	var menu_obj = new this.Menus[name];
	if (menu_obj.sub_menus!==undefined) {
		
		
		
		}
	obj.element.style.display="block";
	
	}	

Enclosed.prototype.hide = function(){
	
	var name=arguments[0];
	/*var obj, meni_obj = new Object();
	odj = this.Menu_array[name];
	menu_obj = this.Menus[name];*/
	/*if (this.Menus[name].sub_menus) {
		
		for(var n in this.Menus[name].sub_menus){
			
			this.Menu_array[this.Menus[name].sub_menus[n]].element.style.display="none";
			
			}
		
		}*/
		//document.write(obj.toString());
		document.write(this.Menu_array['insurance'].element.style.display="none");
	//this.Menu_array[name].element.style.display="none";
	
	}
	function init(loc){
	loc=document.location.toString();
	loc_a=loc.split("/");
	loc_a.pop();
	this.where=loc_a[loc_a.length-1];
	
	}

var ini=new Enclosed(Menus);
var ini2 = new Object();
ini2.prototype=ini.Menu_array;
в функции hide пишет ошибку требуется объект, изза того что this.Menu_array['insurance'].element - не является объектом
Ответить с цитированием
  #2 (permalink)  
Старый 28.05.2008, 13:22
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Очень многа букаф.

Где вызывается hide()?
Зачем присваивание свойство "prototype" объекту?
Ответить с цитированием
  #3 (permalink)  
Старый 28.05.2008, 14:25
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Antonio,
Ваш код слишком длинный, и его сложно протестировать, так как нет самой страницы. Попробуйте вычленить код, который не работает, или написать более простой пример, который работает с ошибкой, тогда вам, скорее всего, помогут.

Чисто на глаз никаких ошибок не видно. Ну только если этот код, например, не выполняется до объявления <body> и вызываемых по getElementById() элементов.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередной глюк SunYang Общие вопросы Javascript 10 04.09.2008 17:26