javascript - 手动设置 event.target

标签 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>

最佳答案

你应该给你的 addEventListener 添加一个参数.它最终看起来像这样:

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

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

关于javascript - 手动设置 event.target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382484/

相关文章:

javascript - dayjs() 告诉我这个日期字符串的日期无效

javascript - 对具有该功能的元素执行 DoubleClick

javascript - 使用函数动态生成标签

JavaScript 事件对象?

javascript - 在 Javascript 中刷新 $(document).ready

javascript - 在函数内分配全局变量

javascript - 为什么不将 Javascript 事件委托(delegate)发挥到极致呢?

javascript - ExtJs添加新记录时删除现有记录

javascript - 无法连接 mongoose 和 mockgoose

javascript - 为什么游戏时间缩短了一半而不是 2 秒?