我在一个元素上有一个mousedown
事件处理程序:img
$('#some_image').bind({
mousedown: function(e) {
var img = e.target;
var relpos = ???;
}
})
我怎样才能得到mousedown
相对 img
的位置?相对,即相对于 的任何一个img
角,以最简单的为准。
FWIW,我正在使用 jQuery。
(对不起这个愚蠢的问题。我想答案一定是微不足道的,但我找不到它,这让我发疯了......)
编辑:好的,这是答案:
$('#some_image').bind({
mousedown: function(e) {
var offset = $(this).offset();
var relpos = [e.pageX - offset.left, e.pageY - offset.top];
// etc.
}
})
实际上,我发现对于我正在做的事情,最好减去Math.round(offset.left)
而Math.round(offset.top)
不是原始偏移量,因为后者并不总是整数(见图)。
顺便说一句,至少根据 Firebug,事件的offsetX
和offsetY
是未定义的,layerX
甚至layerY
没有在其成员中列出。