是否可以在添加事件处理程序时手动设置 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 .您可以使用 pageX
和 pageY
,或者 ev
具有的其他属性。
关于javascript - 手动设置 event.target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382484/