我有一个画布绘制这样的处理OnClick事件在JavaScript帆布和获取它的坐标
<div id="canvas" style="position:relative;width:600px;height:300px;" onclick="q()"></div>
我需要处理它,当点击事件,并得到画布上的坐标,它被点击
我有一个画布绘制这样的处理OnClick事件在JavaScript帆布和获取它的坐标
<div id="canvas" style="position:relative;width:600px;height:300px;" onclick="q()"></div>
我需要处理它,当点击事件,并得到画布上的坐标,它被点击
您需要获取页面的x和y坐标,然后减去canvas
偏移量以使它们相对于canvas
。
function q(event) {
event = event || window.event;
var canvas = document.getElementById('canvas'),
x = event.pageX - canvas.offsetLeft,
y = event.pageY - canvas.offsetTop;
alert(x + ' ' + y);
}
您应该考虑使用onclick
HTML属性悄悄附加事件,即而不是。
使用jQuery,您可以直接阅读.pageX和.pageY属性。
http://docs.jquery.com/Tutorials:Mouse_Position#Where_did_they_click_that_div.3F
由于HTML5,刚刚拿到layerX和事件本身的属性layerY。太好了!
甜!这是一个很棒的解决方案。任何人都知道一个缺点? – 2015-07-07 03:50:29
谢谢!但是,“不显眼”的意思是什么? – 2011-06-10 00:44:25
@Ahmad在答案中解释。在JavaScript代码中使用'attachEvent()'和'addEventListener()'组合。不要混合行为和数据层。 – alex 2011-06-10 00:55:40