| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > передача параметра в <a onclick> |
| Автор: 0000 26.10.2008, 13:33 | ||||
Привет всем..Вот пример кода...
Объясните момент, почему в выделенной строке если передавать параметр obj - не работает, а если любой другой (например i или parent или строку, число и т.д.), то работает??? что в параметре obj такого особенного? Тока объясните плз максимально просто без выпендрежа типа иди в поиск и замудренных слов...плз.спасибо |
| Автор: ksnk 26.10.2008, 14:53 | ||
А без синтаксических ошибок код слабо предъявить? |
| Автор: 0000 26.10.2008, 15:16 |
| почему-то когда нажимаю на редактирование поста - открывается окно и подвисает..на мышу реагирует, на клаву нет...ну я подумал клава отрубилась, побарабанил по кнопкам...а оказалось вот он мне вместо нулл какую кракозябру написал.. |
| Автор: 0000 3.11.2008, 22:29 |
| ну так что, мегаспецы по жаве скрипту.... никто не знает, как объяснить сие явление? |
| Автор: IDVsbruck 4.11.2008, 02:13 | ||||||||||||
| Только вчера на подобную тему в соседнем посте писал. Насколько понимаю по "максимально просто", то, мягко говоря, ты новичок. Тогда "по-простому" ... 1. Результатом действия функции
при одной картинке будет следующим:
С какой стати данная конструкция должна работать? 2. Практика использования "document.write()" очень плохая. Это пример того, как не надо делать. Этот метод отлично подходит только для "Hello, world!" Для работы с элементами у программера есть модель DOM. Судя по коду, я не очень понимаю, что есть "GetProperties(img_obj);" и как согласуются "GetProperties(img_obj);" и "function GetProperties(obj,parent)". Возможно, он обрезан, и поэтому помочь сложно. Возможно, надо дать более валидный код без сильного обрезания (и двойной вставки кода), тогда помочь будет проще. 3. Допустим, ты отказался от "document.write()" и взял на вооружение DOM (ну, или хотя бы атрибут html контейнера, в который можно поместить ссылки, например, div). В этом случае в цикле будет создаваться ссылка следующим образом:
А дальше идет стандартная ошибка всех новичков:
Однако данная конструкция работать не будет, так как время жизни функции GetProperties, а, следовательно, и переменных obj, i, parent, очень коротко. Следовательно, на момент возникновения события onclick в функцию GetChildProperties будет передаваться неизвестно что (возможно, null). 4. Чтобы обойти данный коллапс, существует понятие замыкания - уникальная возможность javascript. Есть более короткий, но более сложный для понимания вариант:
и более длинный, по более понятный:
Надеюсь, объяснил достаточно доступно ... |
| Автор: 0000 4.11.2008, 15:45 | ||||||
т.е. я в функцию GetChildProperties() вообще не могу передать объект?? я же вроде передаю здесь не просто строчку "[object]", а сам объект...я вот этого не понимаю... за остальное - Great Thanks! +1 |
| Автор: IDVsbruck 4.11.2008, 23:56 |
| В функцию - можешь, а с помощью строки, которая будет парситься и вставляться javascript-интерпретатором - нет. |