Показать сообщение отдельно
  #1 (permalink)  
Старый 07.05.2011, 19:31
Интересующийся
Отправить личное сообщение для Flirer Посмотреть профиль Найти все сообщения от Flirer
 
Регистрация: 19.12.2009
Сообщений: 11

Массив, созданый в функцие не доступен нигде кроме тела функции
Зравствуйте. Столкнулся со странной проблемой:


В начале скрипта задаётся массив:

var calend = new Object;

calend.events = new Array();


после этого идёт подключение к XML файлу, данные передаются в эту функцию:

function ParseXML(Response) {
	calend.doc = Response.responseXML.documentElement;
	var events = calend.doc.getElementsByTagName("event");
	
	var name, link, icon, img;
	
	for (var i=0;i<events.length;i++) {
		name = events[i].getElementsByTagName("name")[0].firstChild.nodeValue;
				
		calend.events[i] = new Array();
		calend.events[i]["name"] = name;
		
	}
	
}


элемент calend.events[n] - недоступен за пределами функции. Если я сделаю

alert(calend.events[0]["name"]);


в parseXML то отоброзится ожидаемой содержимое из XML файла. Но если тоже самое набрать вне функции то cant read property 'name' of undefined...

при этом другие параметры calend которые используются в других местах работают нормально.

Совсем задолбавшись сделал простой пример:

var calendar = new Object();
calendar.events = new Array();
addArray(calendar.events);
addArray(calendar.events);
addArray(calendar.events);

function addArray(array) {
	array[array.length] = new Array(array.length+array.length, array.length+array.length*array.length+array.length);
}

alert(calendar.events[3]);


работает как надо, массив calendar.events доступен из любого места...

Не работает в последнем хроме и firefox. Может кто сталкивался с таким бредом, или я дурак какую-то простую ошибку не вижу?
Ответить с цитированием