![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Я не пойму что такое ev и что хранится в этой переменной или объекте. -------------------- Ты виндусятник?... А я да. ![]() |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Это аргумент! У меня он обычно называется evt; У Сара - ev... называй как хочешь
![]() |
|||
|
||||
Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Просто создаём функцию, идеентично function(event) {...
IE отличается от всего мира тем что обьект событие храниться в window.event(тем самым отемняя предпологаемую многопоточность), все другие отдают сей обьект первым аргументом, у меня это ev ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Понятно, значит вид задания функции непринципен Вроде понял. И понял вот так. В Геках у нас всегда висит глобальный объект в котором хранятся свойства событий и называется он event, а в ИЕ мы его получаем как подобъект window Но тогда непонятно следующее:
Как Гекоподобные сообразят, что на место ev надо подставить event? Что, получается, что единствинный параметр который может передаваться в обработчик событий это event и поэтому браузеры семейства Геко автоматически подставляют в tag.onclick=function(ev) объект event на место ev. Если это так то все понятно, если нет, то как иначе может быть ![]() -------------------- Ты виндусятник?... А я да. ![]() |
||||
|
|||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Под IE он написан 8))
Спасибо за замечание. Исправил. Еще раз: Обработчики событий по стандарту W3C DOM получают ссылку на объект события через параметр (аргумент), в то время как в IE DOM этот объект event является свойством объекта window. |
||||
|
|||||
Sardar |
|
||||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Для Оперы 6 принципиален, т.к. она(в виду своей отстойности в плане скриптов) не подерживает конструкцию new Function.
Нет, в Мозилле обьект событие передаётся только обработчику события, ни в каком глобальном контесксте обьект не существует(если ты его только не запишешь). Повторю ИЕ хранит текущий обьект события в window.event, т.е. одновременно два события зажечся не могут. В Мозилле и других W3C подобных обьект событие передаётся первым параметром функции обработчика события. Пофигу как сей параметр зовётся. Если же ты делаешь inline событие то происходит такой фокус:
И еще раз повторю, браузер передаёт обьект событие первым параметром функции и пофигу как сей параметр зовётся. Да, ты можешь определить сколь угодно параметров, но браузер передаст только один(а какую инфу еще передавать? ). Ты можешь сам потом вызвать обработчика события в ручную как myobject.onclick(<сохранённый заранее event>, <твои параметры>); - и передать сколь угодно параметров. Надеюсь что теперь всё ясно. Главное не думать что в JS есть куча магии как в VB, нет здесь всё просто и логично и правила языка для всех(даже для встроенных фич) едины. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||||
|
|||||||||||
Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Хорошо. Вникаю...
Про интерфейс тоже понятно, это видимо имеется ввиду: у кого target, а у кого и scrElement будет? А остальноу буду доучивать по вашей статье. Крайне нуждаюсь в умении вызывать событие из скрипта (активировать). Я прочитал только 1/3 статьи, надеюсь дальше эта активация есть. Это сообщение отредактировал(а) Иль - 22.4.2005, 16:43 -------------------- Ты виндусятник?... А я да. ![]() |
|||
|
||||
Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Про активацию события из скрипта не нашел. Что посоветуете и есть ли это в интерфейсе window.event (знаю только W3C)?
-------------------- Ты виндусятник?... А я да. ![]() |
|||
|
||||
Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Извините, все работает. Запутался в if ... else
Если кто не знает, то чтоб не разбираться с DOM можно воспользоваться топором ![]()
-------------------- Ты виндусятник?... А я да. ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Да там не только это, собстна только в последних разработках(когда W3C взялось за повозку) баузеры начали быть совместимыми. В ИЕ до сих пор нет человеческой модели событий W3C, приходится извращаться. Как понять "активировать событие"? Можно вызвать обработчик события у обьекта в ручную, можно вызвать один из стандартных методов, например click() для кнопки, можно заюзать у document'а (createEvent)Mozilla - (createEventObject/fireEvent)IE для создания любого события... Мозилла страдает отсутствием точной доки(нужно поискать), а для ИЕ как всегда на MSDN: http://msdn.microsoft.com/workshop/author/...eventobject.asp http://msdn.microsoft.com/workshop/author/...s/fireevent.asp Добавлено @ 17:34 Упс, ты уже ответил сам себе ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Sardar
Без on чтоли? Недопонял, как это? А какие есть варианты. Можно без примеров, на словах поподробнее, ведь
не один же способ -------------------- Ты виндусятник?... А я да. ![]() |
||||
|
|||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Есть обработчик события, есть ссылка на событие, есть вызов события - и все это разные вещи! Префикс on нужен только в простейшем inline объявлении или обращении к св-во объекта window. Есои событие имеется ввиду как метод - префикс не нужен уже 8)) |
|||
|
||||
Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
А! Понял, тоесть можно писать
Если нет, то где используется без on -------------------- Ты виндусятник?... А я да. ![]() |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Нет. Это не есть одно и тоже.
Когда при написании сценария необходимо обратиться к событию, тогда-то и используется имя события с префиксом on. Например, при подтверждении формы кнопка получает событие click, но для его установки нужно используется имя onclick. ЗЫ: сам говорил что тема для тебя не понятная в данной статье - теперь она становится еще более непонятной - разделяю на две. СУВ. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Поясню на примере:
Как видим метод click у кнопки есть один из его стандартных методов. Если ты определишь событие onmyevent, это не значит что появится метод myevent зажигающий это событие, повтрою еще раз: в JS нет(нет!, нет!!, нет!!!) магии ![]() Что клик по кнопке, что метод click генерят одинаковое событие на кнопке. Мы также можем вызвать обработчика события в ручную, но только для традисионных обработчиков. Добавив обработчика через addEventListener мы получить прямую ссылку на него уже не можем. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |