Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> анонимные функции 
V
    Опции темы
pnd_ku
Дата 11.1.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 25.9.2006

Репутация: нет
Всего: 1



Здраствуйте!
Возникла следующая проблема, вот кусок кода:

Код

function stopFillBusyTime(arr)
{
    for(var i=0;i<arr.length;i++)
    {
        var obj=document.createElement('div');
        //настройки, настройки...
        obj.onclick=function()
        {
            alert(arr[i][3]));
        };
        //добавление нового узла родительскому узлу
    }
}


проблема следующая: скрипт не видит arr[i], то есь он андефайнед, что же делать??
Суть вот в чом: в цикле создаётса куча дивов, и по клику на каждый из них должна вызываться функция со своими параметрами, а я не могу сделать этот параметр уникальным для каждого дива.

Есть какие-нить идеи?
PM MAIL   Вверх
GZep
Дата 11.1.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 2
Всего: 32



Мои варианты:
  • А если alert(arr.i.3)); ? Просто между точкой и скобками есть небольшая разница в совместимости
  • var i=0 - может просто, без var, вот так: for(i=0;i<arr.length;i++)?
  • можно еще for in попробовать...
Скорее всего 2 вариант. smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
AKS
Дата 11.1.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



GZep, вот только-только здесь по поводу for(i=0;i<arr.length;i++) был разговор, а Вам хоть бы что. smile
Да еще и надеетесь, что отсутствие var'а поможет...

Это сообщение отредактировал(а) AKS - 11.1.2007, 17:30
PM MAIL   Вверх
pnd_ku
Дата 11.1.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 25.9.2006

Репутация: нет
Всего: 1



хмм.... ну и как результат ничего не заработало smile
ещё предложения?
PM MAIL   Вверх
SelenIT
Дата 11.1.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



По-моему, вот здесь материал в тему (на русском). Хотя уважаемый Zeroglif и подверг его справедливой критике, имхо, для "стартового толчка в направлении истины" эта статья не так уж плоха (мне в свое время помогла)...

Это сообщение отредактировал(а) SelenIT - 11.1.2007, 17:38


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
GZep
Дата 11.1.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 2
Всего: 32



Цитата(AKS @  11.1.2007,  17:29 Найти цитируемый пост)
GZep, вот только-только здесь по поводу for

Не читал... smile Спасибо!
Цитата(pnd_ku @  11.1.2007,  17:37 Найти цитируемый пост)
ещё предложения? 

Да там с var должно быть связано...

Добавлено @ 17:50 
Код выложите, что там нового у вас получилось...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
pnd_ku
Дата 11.1.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 25.9.2006

Репутация: нет
Всего: 1



:,) я счастлив!!
заработал!!
Спасибо большое все за внимание, а SelenIT за пинок в сторону решения!!
Вот собственно код:

Код

function dele(n)
{
    return function(){alert(n)};
}
function stopFillBusyTime(arr)
{
    for(var i=0;i<arr.length;i++)
    {
        var obj=document.createElement('div');
        //настройки, настройки...
    var func=dele(arr[i][3]);
        obj.onclick=func;
        //добавление нового узла родительскому узлу
    }
}


Получается что для каждого дива создаётся своя функция, и вызывается именно она, а не общая с параметром!
Огромное спасибо!!  smile 

Это сообщение отредактировал(а) pnd_ku - 11.1.2007, 18:02
PM MAIL   Вверх
Zeroglif
Дата 11.1.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Если бы тут был FAQ, этот вопрос - реальный туда кандидат. Только в этом году раз десять видел, как смышлёный народ на нём буксует.
PM MAIL WWW   Вверх
Sardar
Дата 12.1.2007, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Zeroglif, если ты только это за FAQ не считаешь smile
Отпиши полный пост, я добавлю.
 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Zeroglif
Дата 12.1.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Sardar @  12.1.2007,  01:05 Найти цитируемый пост)
Zeroglif, если ты только это за FAQ не считаешь

smile  Ну, я имею в виду FAQ, из серии "прежде чем постить в форум обязательно прочитайте FAQ". Который в привычном красном цвете болтается наверху и всех пугает, особенно ньюбов. Если я не ошибаюсь, у нас такого нет, но есть несколько разбросанных статей.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.