jQuery event.layerX / Y与触发事件的元素无关,这是正确的吗?

时间:2010-06-17 11:42:42

标签: jquery events dom-events

如果我在div上使用例如mousemove事件处理程序并检查事件的layerX属性,当鼠标进入该div内的定位元素(如图像)时,它会发生变化。

根据the jQuery Event object documentation,它应遵循W3C DOM Level 3规范。但是没有提到the MouseEvent interface的layerX / Y属性,所以我想知道根据规范的行为是什么?

对我而言,似乎你总是希望layerX / Y相对于触发事件的图层,如果我想要嵌套元素的layerX / Y,我会在不同阶段检查事件(冒泡)或者将我的处理程序附加到该嵌套元素。

我的问题是(有点主观):layerX / Y应该如何工作?

2 个答案:

答案 0 :(得分:2)

你也可以使用:

  

var x = e.pageX - this.offsetLeft;

     

var y = e.pageY - this.offsetTop;

它与使用jQuery element.offset()属性几乎相同,但此方法使用本机offsetTop和offsetLeft属性。

jQuery - Tutorials: Mouse Position

的底部附近找到

答案 1 :(得分:1)

我认为layerx / y将是具有位置(相对或绝对)的触发元素的第一个父节点的偏移量。无论哪种方式,jQuery有更好的方法来找到这样的位置,并且在每个浏览器中也不能保证LayerX / Y是相同的,所以我不会使用它