Как связать событие с объектом 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.
|