Показать сообщение отдельно
  #1 (permalink)  
Старый 20.09.2012, 12:41
fk0 fk0 вне форума
Новичок на форуме
Отправить личное сообщение для fk0 Посмотреть профиль Найти все сообщения от fk0
 
Регистрация: 20.09.2012
Сообщений: 2

Как связать событие с объектом javascript.
Допустим, есть событие onclick. Есть несколько кнопок и при нажатию на каждую вызывается некая функция. Хочется, чтобы с кажой кнопкой был связан свой, отдельный, объект javascript и в его контексте (this) вызывалась эта функция. object.push() например. Кнопки генерируются динамически и им, как и объектам, нельзя заранее дать имена (для кнопок неудобно назначать id, для объектов неудобно вносить их в контекст window и ещё более неудобно давать какое-то имя).

Несколько я понимаю обработчик событий будет вызван в контексте window или с this указывающим на DOM объект для которого сейчас обрабатывается событие. A мне хочется мой object вместо того.

Понятно, что придётся динамически назначить разные обработчики onclick.
Я не понимаю, можно ли сделать onclick=function() { object.push() }, в таком случае object хранится в замыкании. Или onclick интерпретируется через eval (мне это не понятно, прошу пояснить). Или назначить DOM-объектам разные id и хранить список id и соответствующих им моих object. Или ещё как-то, но я не представляю как.

Или, если через addEventListener, то можно внутрь объекта event, тоже динамически создаваемого, засунуть ссылку на мой object, а собственно event поместить внутрь object или как-то так? А garbage collector нормально работатаь будет потом?

Последний раз редактировалось fk0, 20.09.2012 в 12:43.
Ответить с цитированием