так что вы, вероятно, должны воздерживаться от использования его в любом случае (хотя я использую их прямо сейчас, но это должно работать только в определенных браузерах).

хороший ресурс по нормализации событий на объекте события. Я пытаюсь сделать это сам, но я продолжаю чувствовать, что собираюсь что-то пропустить.

Вот что у меня есть, скажите мне, если я что-то пропустил.

var eFix = function(e) {
    e = e || window.event;
    e.target = e.target || e.srcElement;
    e.offsetX = e.offsetX || e.layerX;
    e.offsetY = e.offsetY || e.layerY;
    e.relatedTarget = e.relatedTarget ||
        e.type == 'mouseover' ? e.fromElement : e.toElement;
    e.target = e.target || e.srcElement;
    if (target.nodeType === 3) target = target.parentNode; //Safari bug
    return e;
};

Кто-нибудь видел полную функцию нормализации? Я что-то пропустил? (Излишне говорить, что мы собираемся для модели W3C, а не IE)

 Simon_Weaver01 авг. 2015 г., 00:34
Мне нравится, как никто на самом деле не сказалyes this is correct!
 qwertymk10 янв. 2011 г., 03:49
@Brad Christie Это для целей обучения, и я бы не стал использовать свой код только для нормализации событий
 Brad Christie10 янв. 2011 г., 03:44
Вы против использования jQuery? Это позаботится об этом для вас ...
 crush19 февр. 2013 г., 14:25
@qwertymk Я согласен. Люди слишком быстры, чтобы включить каждую библиотеку, известную человеку, просто чтобы использовать одну особенность из нее. Это действительно грустно.

Ответы на вопрос(1)

e.layerX работает только напозиционированный элементы, так что, по крайней мере, вам нужно добавить «положение: относительно» вашего элемента, чтобы функционировать. во-вторыхe.offsetX работает правильно только вIE8 и позжетак что вы, вероятно, должны воздерживаться от использования его в любом случае (хотя я использую их прямо сейчас, но это должно работать только в определенных браузерах).

Ваш ответ на вопрос