Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2011, 19:39
Аспирант
Отправить личное сообщение для evgh Посмотреть профиль Найти все сообщения от evgh
 
Регистрация: 29.01.2011
Сообщений: 58

присвоение события
надо динамически присвоить событию onmouseover неких элементов функцию gg(event, this);
подскажите как это правильно делается.
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2011, 19:49
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

element.onmouseover = function(event){
  gg(event || window.event, this);
};
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2011, 19:55
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Sweet, а я вот давно хотел у кого-нибудь спросить, валидна ли вот такая конструкция?
function gg()
{
// обработчик события от мыши на объекте
// this ... event... blablabla
};

element.onmouseover = gg;
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2011, 20:04
Аспирант
Отправить личное сообщение для evgh Посмотреть профиль Найти все сообщения от evgh
 
Регистрация: 29.01.2011
Сообщений: 58

Sweet, спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2011, 21:46
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Маэстро, конечно.
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2011, 00:15
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Валидный js... А имеет вообще смысл? Учитывая, что есть ie, в котором даже обработчики добавляются по-другому (я о attachEvent, господа), не говоря уже о выделениях, к примеру.

Или мы берём валидность отдельных участков кода?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2011, 12:53
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Sweet Посмотреть сообщение
Маэстро, конечно.
тогда зачем усложнять жизнь и передавать параметры функции
gg(event, this); ?
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2011, 22:35
Аспирант
Отправить личное сообщение для evgh Посмотреть профиль Найти все сообщения от evgh
 
Регистрация: 29.01.2011
Сообщений: 58

Маэстро, а как правильно тогда?
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2011, 22:52
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Маэстро,
в 9 ие реализован addEventListener. так что можно говорить о начале перехода на один стандарт.так что возможно для более ранних версий появятся заплатки для этого дела
Ответить с цитированием
  #10 (permalink)  
Старый 10.06.2011, 12:31
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от evgh Посмотреть сообщение
Маэстро, а как правильно тогда?
я не сказал, что Ваш вариант неправильный. но зачем же передавать параметр в функцию this, если при вызове функции он и так доступен внутри функции? А вот с передачей параметра event в разных броузерах могут быть проблемы. причем это в зависимости от того, что Вы дальше с этим эвентом планируете делать. вообще для кроссбраузерности рекомендуется использовать вот такую функцию получения эвента:
function fixEvent(e)
{
e = e || window.event;

if (e.pageX == null && e.clientX != null)
 {
 var html = document.documentElement;
 var body = document.body;
 e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
 e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
 }

if (!e.which && e.button)
e.which = e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) );

return e;
};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для вновь-вставленных тегов в DOM Mutagena jQuery 5 12.12.2011 19:56
События Jquery и не только Tohin Events/DOM/Window 3 21.08.2009 14:57
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 13:16