Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
1

событие event

11.11.2010, 15:51. Показов 3116. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Познакомился с событием event, интересная штука, но работает везде кроме мозилы, к примеру пишу получение координат мыши по х
Javascript
1
offX = event.screenX;
получаю ошибку:
event is not defined
Как правильно использовать объект event в мозиле и можно ли?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2010, 15:51
Ответы с готовыми решениями:

event.returnValue is deprecated. Please use the standard event.preventDefault() instead
Выдаёт ошибку event.returnValue is deprecated. Please use the standard event.preventDefault()...

event
Я запутался в объекте event. В Opera, Google Chrome, IE window.event - это объект события. В...

Event в JS
Допустим есть кнопка <input id="b2" type="button" name="button2" value="Добавить"/> ...

Event в функции
Как принять event внутри функции? его обязательно передавать или можно как то принять без передачи?...

11
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
11.11.2010, 16:06 2
Crudelis, это по хорошему сначала надо изучать. А так вот статьи.

Добавлено через 13 минут
Дело в том, что ты не передал event. Вот так надо записывать:
Javascript
1
2
3
function func(e) {
    if (!e) {e=window.event}; alert(e.screenX)
}
HTML5
1
<input type="button" value="Проверить event" onclick="func(event)">
Дело в том, что у IE, Google Chrome и Opera ссылка на event находится в window.event. А в Mozilla такого нет. event создаётся (во всех браузерах) когда срабатывает событие, н-р нажатие, фокусирование и т. д. И ссылка на него кидается в window.event в этих трёх браузерах, но помимо этого он ещё и передаётся в функцию-обработчик.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
element.onclick=function() {
//Вот сюда он попадает, но надо его принять
}
//---------------------------
element.onclick=function(e) {
//Приняли!
alert(e.type)
//Ох! В IE говорит что event is not defined! А всё потому что
//в IE ссылка создаётся в window.event, а в функцию он не передаётся, а
//в Opera и Google Chrome - и создаётся ссылка в window.event, и передаётся в функцию.
//А в Mozilla event передаётся, но в window.event на него ссылка не даётся
}
//---------------------------
element.onclick(e) {
if (!e) {e=window.e}
alert(e.type)
//Выдало везде!
}
Но как же быть вот с этой записью?
[HMTL]<input type="button" value="Проверить event" onclick="func(event)">[/HTML]
Здесь же мы event не принимаем! Ответ: Нет, мы его принимаем. Дело в том, что запись
HTML5
1
< ... onclick="func(event)" ... >
идентична такой:
Javascript
1
2
3
4
5
6
7
8
9
element.onclick=function(event) {
    func(event)
//Сюда передался event и мы его передали в функцию func. Но в IE опять же всё немного по-другому
}
//---------------------------
element.onclick=function() {
    func(event)
//А сюда-то event не передался! Вот поэтому-то в func мы и пишем, что if (!e) {e=window.event}
}
1
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
11.11.2010, 16:22  [ТС] 3
ага понятно, спасибо за разъяснения, т.е. event нужно передавать в аргументы ф-ции
0
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
11.11.2010, 16:22 4
Crudelis, да, и проверять, передался ли он.
1
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
11.11.2010, 16:33  [ТС] 5
Hagrael, опять же вопрос по мозиле
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
</head>
 
<body>
<script>
function onL(){alert(inp.value);}
</script>
<input type="text" onblur="onL()" id="inp" />
</body>
</html>
Везде выдает значение введенное в поле, а в мозиле нет, работает только через document.getElementById(), почему так? Объясните пожалуйста
0
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
11.11.2010, 16:53 6
Crudelis, а по сути и не должно ведь работать. inp - это всего лишь id у текстового поля, и чтобы занести это текстовое поле в переменную, надо выполнить document.getElementById() Я вообще удивлён, что то, что вы написали, работает
0
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
11.11.2010, 17:15  [ТС] 7
Hagrael, IE 8, Opera, GoolgleChrom, везде работает без document.getElementById() простое обращение к переменной:
Javascript
1
inp.value
0
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
11.11.2010, 20:13 8
Crudelis, даже не знаю, как объяснить такое поведение.
0
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
11.11.2010, 22:20  [ТС] 9
Hagrael, ясное дело что для кроссбраузерности лучше писать document.getElementById(), но почему все браузеры кроме мозилы справляются с поставленной задачей... вопрос)
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
12.11.2010, 11:58 10
Цитата Сообщение от Crudelis Посмотреть сообщение
кроссбраузерности лучше писать document.getElementById()
таки лучше... пока фейлов не встречал, кроме случаев когда опечатывался а так то - jQuery рулез в этом вопросе
0
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
12.11.2010, 13:18 11
Видимо те браузеры решили сделать такой алгоритм:
Если переменная есть, то возвращай эту переменную, если же нет, то смотри, есть ли элемент с таким id, и если есть, то возвращай его.
А Mozilla так не делает.
0
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
12.11.2010, 13:56  [ТС] 12
да, скорее всего) теперь стало понятно
0
12.11.2010, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2010, 13:56
Помогаю со студенческими работами здесь

Кроссбраузерность event
Здравствуйте, подскажите пожалуйста в чем проблема. Необходимо перехватить код нажатой клавиши,...

event onChange
Доброго времени суток. Подскажите, как правильно сделать событие onChange() в js, если в условии:...

DOM BOM Event
В чём может быть проблема ? &lt;style&gt; .container{ width:100%; ...

Ember_js click event
Пытаюсь изучать фрэймворк ember.js. После создания нового приложения добавляю компонент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru