jQuery event.layerX / Y не относится к элементу, который вызвал событие, это правильно? - PullRequest
0 голосов
/ 17 июня 2010

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

Согласно документации по объекту события jQuery он должен соответствовать спецификациям W3C DOM уровня 3.Но нет никакого упоминания о свойстве layerX / Y для интерфейса MouseEvent , поэтому мне интересно, какое поведение соответствует спецификации?

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

Мой вопрос (несколько субъективный): как должен работать layerX / Y?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Вы также можете использовать:

var x = e.pageX - this.offsetLeft;

var y = e.pageY - this.offsetTop;

Это почти то же самое, что использование свойств jQuery element.offset (), но вместо этого этот метод использует собственные свойства offsetTop и offsetLeft.

найдено в нижней части: jQuery - Обучающие программы: Положение мыши

1 голос
/ 17 июня 2010

Я думаю, что layerx / y будет смещением от первого родительского узла элемента обжига, который имеет положение (относительное или абсолютное).В любом случае, в jQuery есть лучшие способы поиска таких позиций, а также не гарантируется, что LayerX / Y будет одинаковым в любом браузере, поэтому я бы не стал его использовать

...