|
2 / 2 / 0
Регистрация: 28.06.2013
Сообщений: 23
|
|
Ссылка на объект, вызвавший событие21.08.2014, 19:53. Показов 4590. Ответов 9
Метки нет (Все метки)
Всем доброго времени суток!
Недавно начал изучать JavaScript и пишу свой первый калькулятор. Возникла необходимость при нажатии на кнопку с цифрой добавить на дисплей ту цифру, которая, собственно и была нажата. Выхода, собственно, вижу два: 1) Некрасивый и неудобный, и вообще "фю". Заключается в том, что бы для каждой кнопки писать отдельный обработчик события. 2) Более элегантный. Для всех кнопок-цифр зарегистрировать один обработчик события, который обращается к кнопке, что возбудила событие и дописывает на дисплей button.textContent этой кнопки. Но никак не могу додуматься, как же получить ссылку на объект, возбудивший событие. Прошу сообщество помощи. jQuery не знаю, поэтому варианты с jQuery мне вряд ли помогут.
0
|
|
| 21.08.2014, 19:53 | |
|
Ответы с готовыми решениями:
9
Ссылка на объект Ссылка на объект [ООП] Ссылка на объект в контексте этого объекта |
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||
| 21.08.2014, 20:14 | ||||||
1
|
||||||
|
2 / 2 / 0
Регистрация: 28.06.2013
Сообщений: 23
|
|||||||||||
| 21.08.2014, 20:33 [ТС] | |||||||||||
|
Спасибо. Еще обнаружил интересную штуку. Код
Добавлено через 5 минут Еще один вопрос. Хотелось бы поместить этот обработчик прямо в объект "калькулятор". Т.к. this теперь указывает на вызвавший объект, как достучаться из обработчика до методов калькулятора?
0
|
|||||||||||
|
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
|
|||||||||||
| 21.08.2014, 20:54 | |||||||||||
|
Поробуйте так:
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 28.06.2013
Сообщений: 23
|
||||||
| 21.08.2014, 21:34 [ТС] | ||||||
|
Конечно, вариант, но немного не то, что мне нужно. Дело в том, что я хочу представить калькулятор в виде объекта и вся информация о нем должна храниться внутри в виде полей.
Добавлено через 22 минуты Решил с помощью замыкания. Спасибо всем, кто пытался помочь. Если интересно, ниже код.
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 22.08.2014, 12:58 | |
|
some_name, давать переменной, которая является ссылкой на объект, имя event - это оксюморон
![]() имхо, предпочтительней так: __________________ function f (obj) { document.getElementById ('container').innerHTML += obj.value; } __________________ и зачем у вас здесь -- <input type='button' value='1'; onClick="f(this);"/> -- точка с запятой? и почему здесь же у значений разных атрибутов используются разные кавычки: у type и value - одинарные, а у onclick - двойные? в этом есть какой-то скрытый смысл?
0
|
|
|
2 / 2 / 0
Регистрация: 28.06.2013
Сообщений: 23
|
|
| 23.08.2014, 00:33 [ТС] | |
|
Согласен! Это же ссылка на объект, который инициировал событие, а не на событие.
0
|
|
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 23.08.2014, 00:36 | |
|
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 23.08.2014, 16:48 | ||
|
FraidZZ, не тупите
event - это событие коллега some_name передает функции в качестве параметра тег (сиречь объект), на котором произошло событие клика (тот самый this) а внутри функции some_name именует этот объект именем event
1
|
||
| 23.08.2014, 16:58 | |
|
0
|
|
| 23.08.2014, 16:58 | |
|
Помогаю со студенческими работами здесь
10
Проблема с массивами + System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объект Если объект добавлять в 2 контейнера, то в них будет ссылка или новый объект? Есть ссылка на объект. Можно ли изменить объект, который хранится по этому адресу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|