![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Есть такая модель. Есть форма. У неё по событию submit вызывается какая-то функция.
Внимание вопрос Можно ли внутри той функции (my_function) получить ссылку или id формы, по сабмиту которой она вызвалась. Нужно это потому, что хотелось бы не передавать все время в функцию this как ссылку на форму. Это сообщение отредактировал(а) smartov - 2.7.2007, 14:27 |
|||
|
||||
| stup |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: нет Всего: 1 |
||||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Низзя, потому как вызов my_function() прописан в теге, то есть он живёт внутри ещё одной "невидимой глазу" функции (не имеет значение , как и когда она создаётся), которая при возникновении события знает значение this и значение event. Она знает, а my_function не знает, отсюда необходимость передавать в неё аргументы. |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 13 Всего: 36 |
В IE через event, в Gecko, видимо, никак.
|
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
smartov,
а чего ты прикипел-то к этому обработчику в теге, сделать форма.onsubmit = функция и будет нужный this или нельзя? Добавлено через 5 минут и 54 секунды Правильное уточнение, а то я обобщил про идентификатор event в inline-обработчике, IE может с event выкрутиться, единственное, не проверял, будет ли srcElement всегда вести на форму, как бы мы её не засабмитили. Кто-нибудь знает? |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
||||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
| Zeroglif |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
просто не уверен на 100% в ответе, за сим сильно ищу сильно уверенных... , никого я не ловлю, даже бабочек... В IE event - свойство window, то есть есть из функции можно обращаться к соответствующему идентификатору и нет надобности передавать event в функцию аргументом. В gecko же event передаётся аргументом в ту функцию, что автоматом создаётся в теге и дальше двигается уже руками в любое место, в твоём случае передаётся в функцию my_function:
Писать ручками event нам не подходит, т.к. аргументы по условию исключены (мы даже от this отказались), тогда AKS-молодец впомнил про свойство caller (увы, уже давно deprecated, но пока ещё работает), с помощью которого мы можем из тела функции my_function выйти на функцию, созданную в теге, а уже у этой функции получить её аргументы, вернее, один аргумент - ссылку на event. Получив event, можно определить элемент, на котором "зажглось событие", с помощью свойства target(gecko) или srcElement(IE), получится что-то вроде:
Я во всей этой затее вижу кучу узких мест (особенно, когда видишь из-за чего весь сыр-бор) и или оставил бы this в покое, или по-другому бы навешал обработчики... |
||||
|
|||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 13 Всего: 36 |
AKS, ну вот
PS. А вот и про caller ответили, прежде чем я спросил ) Это сообщение отредактировал(а) vasac - 2.7.2007, 19:39 |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Показалось что беседа принимает философский оттенок, вот и "сунулся" с этим caller'ом. А мне просто сразу вспомнилась тема о событиях (точнее фрагмент другой темы на dklab), о возможности переопределения св-в объекта Event (созданного методом createEventObject). Вот отсюда и вопрос... |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Zeroglif, ясно. Да, много недоработано еще в javascript
Добавлено через 1 минуту и 4 секунды Спасибо всем, тогда. Теа закрыта. Проще оставить this как есть |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |