2011-08-06 87 views
2

实施例从坐标:取得点击通过javascript

<form> 
<input type="image" id = 'toothsImage' src="someImg.jpg" alt="Submit" /> 
</form> 

图片形式TYPE作用很像INPUT TYPE = SUBMIT字段,但不同的是SUBMIT字段,图像的坐标除了表单数据的其余部分之外,被激活的数据将被发送回服务器。所以 - 当一个点击输入=图像 - 请求将与点击附加坐标,像这样:

x=1&y=2 

我的问题是 - 怎么能够使用JavaScript检索这些坐标,不提交表单。

P.S 1:我知道点击坐标可以用很多方法计算。我认识他们,并且可以轻松使用他们。我只对这种方法感兴趣,因为这里浏览器会自动计算一切。

P.S 2: 我需要获取相对于图像而不是文档的坐标。

+0

你想获得相对于文档或者被点击的图像坐标? –

+0

对不起。相对于图像。 – Stann

回答

4

看起来像offsetXoffsetYaren't available or are unreliable in some browsers。我会推荐使用pageXpageY,因为那些是normalized by jQuery。再加上元素的offset被点击,你就应该在业务:

$("input[type='image']").click(function(event) { 
    var elOffsetX = $(this).offset().left, 
     elOffsetY = $(this).offset().top, 
     clickOffsetX = event.pageX - elOffsetX, 
     clickOffsetY = event.pageY - elOffsetY; 

    // clickOffsetX and clickOffsetY are the clicked coordinates, 
    // relative to the image. 
}); 

例子:http://jsfiddle.net/andrewwhitaker/87NYk/

+0

这个确定没有问题。但是我非常感兴趣的是如何在不输入服务器的情况下点击input type =“image”来获取由浏览器自动计算的值。 – Stann

+0

@Andre:我也很感兴趣。我会做一些挖掘。 –

+0

@Andre:interwebs不会提供关于此输入类型的许多信息。甚至'.serialize()'也不会给你坐标。 –