Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2012, 13:14
fk0 fk0 вне форума
Новичок на форуме
Отправить личное сообщение для fk0 Посмотреть профиль Найти все сообщения от fk0
 
Регистрация: 20.09.2012
Сообщений: 2

Отвечу сам: в addEventListener можно передать объект, внутри которого нужна функция handleEvent, а остальное что угодно может быть -- раз. Собственно handleEvent и что там ещё нужно можно засунуть в прототип (метакласс) объекта кнопки, например.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как на JavaScript подгрузить JavaScript? Pug-dog&Elephant Opera, Safari и др. 2 18.09.2011 15:43
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Как можно совместить 2 "одинаковые javascript но разные внутри" в одну страницу?..ато rashid86 Элементы интерфейса 2 25.04.2011 22:49
Как вывести ошибку в javascript? MCTrane Общие вопросы Javascript 13 05.05.2010 08:36
Как обработать событие Cresh Events/DOM/Window 1 31.05.2008 06:17