Здравствуйте.
Вопрос такой.
Есть функция openMenu, вызываемая при нажатии на картинку через onclick.
<!-- генерируется php-скриптом -->
<div class='item_main'>
<img class='point' id='cat_img' src='{$this->img_path}plus.gif' alt='' onclick="openMenu(this.id,'{$this->img_path}','cat')" /> Каталог
</div>
при её вызове запускается JsHttpRequest запрос с передачей ему значения this.id, по которому на сервере формируется запрос к БД и в объекте javascript'а result появляется массив названий пунктов меню для данного this.id:
function openMenu(this_img_id, img_folder_path, next_div_id)
{
...
// получили массив result
...
for(var i=0; i<result.length; i++)
{
// img1[i] - объект i-го изображения для каждого пункта меню
img1[i] = document.createElement('img');
img1[i].setAttribute('id',this_img_id+String(i));
// div1[i] - это блок, созданный для хранения i-го пункта меню
// непринципиален
div1[i].appendChild(img1[i]);
// вот тут надо определить событие onClick для появившихся кнопочек пунктов меню. Для этого нужно функции openSubMenu передать номер категории в БД и id для соответствующего этому номеру img-элемента, который будем открывать.
img1[i].onclick = function()
{
openSubMenu(img1[i].id, result[i]['cat_id']);
}
...
}
Основная проблема в том, что при открытии пункта по openMenu появляются пункты меню и img[i]. Однако при клике по каждому img[i] вываливается в консоль ошибок сообщение как раз на строке, где описана функция openSubMenu(img1[i].id, result[i]['cat_id']):
--------
Ошибка: img1[i] has no properties
--------
Т.е. почему-то значение img1[i].id а также думаю и result[i]['cat_id'] не передаются как параметры в openSubMenu()
Однако если в качестве эксперимента написать в той строке
openSubMenu(img1[0].id, result[0]['cat_id']);
то первый пункт открывшегося по openMenu() меню будет открываться.
Как можно передать i-й элемент массива?
Заранее спасибо.