jQuery mousemove相对于bubbled事件上的listen元素的偏移量

arc*_*rty 4 jquery jquery-events

如果我让jQuery mousemove在"外部"元素上侦听事件,则当鼠标位于该内部元素内且事件冒泡到处理程序时,offsetXoffsetY值会相对于"内部"元素给出偏移量.

我怎样才能始终获得相对于处理程序所附加元素的偏移量?

示例:http: //jsfiddle.net/00mo3eeu/

HTML

<div class="outer">
    <div class="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.outer {
    background: red;
    width: 300px;
    height: 400px;
    margin: 40px;
}

.inner {
    background: blue;
    width: 100px;
    height: 150px;
    margin: 70px;
    display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)

JS

$('.outer').mousemove(function(e) {
    console.log([e.offsetY, e.offsetX]);
});
Run Code Online (Sandbox Code Playgroud)

更新:如果不清楚,即使在蓝色框http://jsfiddle.net/00mo3eeu/1/中也可以点到指针

arc*_*rty 8

这是我目前的解决方案,我欢迎任何改进它的建议.

function (e) {
  var y = e.pageY - $(e.currentTarget).offset().top
  var x = e.pageX - $(e.currentTarget).offset().left
  ...
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将作为事件对象的一个​​属性给出,但我找不到匹配的属性.