Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2012, 00:21
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

event offset client
немогу понять в чем разница между offsetX ,clientX и pageX ,
подскажите пожалуста
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2012, 01:45
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
clientX и pageX
pageX учитывает прокрутку страницы, а clientX - нет.
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2012, 01:47
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
pageX учитывает прокрутку страницы, а clientX - нет.
а offset ?
он дает другие кординаты
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2012, 11:40
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
а offset
А он по-моему вообще не кроссбраузерный
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<script type="text/javascript">
window.onclick = function(e) {
 e = e || window.event;
 alert(e.offsetX);
}
</script>
</head><body>
Кликните здесь
В Firefox салертил undefined
</body></html>
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2012, 11:43
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
А он по-моему вообще не кроссбраузерный
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<script type="text/javascript">
window.onclick = function(e) {
 e = e || window.event;
 alert(e.offsetX);
}
</script>
</head><body>
Кликните здесь
В Firefox салертил undefined
</body></html>
понятно спс.
еще маленький вопрос :
что значит запись e = e || window.event;
давно хотел понять типо заносит в е или е или window.event но при каком условии?
Ответить с цитированием
  #6 (permalink)  
Старый 08.05.2012, 11:51
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

cyber,
IE<9 не передаёт событие в обработчик. У него оно хранится в window.event
Остальные браузеры передают объект-событие в функцию 1-м аргументом.

Оператор || возвращает 1-ое значение, которое приводится к true (ну или последнее, которое к false). Следовательно в нормальных браузерах будет что-то вроде e = e, а в IE e = window.event.
Ответить с цитированием
  #7 (permalink)  
Старый 08.05.2012, 12:21
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

я так понимаю это e = (e === undefind) ? window.event : e; и это e = e || window.event; работает одинаково?
если да то я правильно писал=)
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2012, 12:34
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
я так понимаю это e = (e === undefind) ? window.event : e; и это e = e || window.event; работает одинаково?
Да
Ответить с цитированием
  #9 (permalink)  
Старый 08.05.2012, 12:34
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
cyber,
IE<9 не передаёт событие в обработчик. У него оно хранится в window.event
Остальные браузеры передают объект-событие в функцию 1-м аргументом.
я это знал.
но самое интересное , что код ниже работает в ие9
document.getElementById("link").onclick=function(e) 
{
alert(e);
	}

но поидее он должен работать так
document.getElementById("link").onclick=function(e) 
{
e = (e === 'undefind') ? window.event : e;
alert(e);
	}
Ответить с цитированием
  #10 (permalink)  
Старый 08.05.2012, 12:36
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
но самое интересное , что код ниже работает в ие9
Ну на к 9-ой версии разработчики ИЕ одумались
Так что IE9 в принципе уже нормальный
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать event, эмулирующий enter Artanis Events/DOM/Window 7 16.07.2019 06:40
Другой взгляд на javascript Дубров Олег Javascript под браузер 24 27.05.2017 09:15
event + setTimeout fsingle Events/DOM/Window 2 02.05.2012 09:07
JavaScript client и server side игры Москва 110 000 Yanazavr Работа 0 25.03.2012 14:16
Отловить направление onmousemove event? jsuse Общие вопросы Javascript 20 29.01.2012 22:10