Зравствуйте. Столкнулся со странной проблемой:
В начале скрипта задаётся массив:
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. Может кто сталкивался с таким бредом, или я дурак какую-то простую ошибку не вижу?