手动设置event.target

时间:2014-01-27 13:45:16

标签: javascript javascript-events

是否可以在添加事件处理程序时手动设置event.target,以便offsetX和offsetY始终相对于该目标。

<div id="outer">
  <div class="inner"/>
  <div class="inner"/>
</div>

<script>
  document.getElementById("outer").addEventListener("click", function(){
    console.log(offsetX); // this will give offsetX relative to div.inner
                          // but i want offsetX relative to div#outer
  });
</script>

1 个答案:

答案 0 :(得分:0)

您应该为addEventListener添加参数。最终看起来像这样:

document.getElementById("outer").addEventListener("click", function(ev) {
    console.log(ev.offsetX); }

ev现在捕获事件,并包含您使用的某些属性。 offsetY也将可用。如果这不起作用,您应该查看this SO post on mouse positions。您可以使用pageXpageY,或ev拥有的其他媒体资源。