是否可以将onclick事件附加到文档中的特定坐标?

时间:2012-05-02 00:52:29

标签: javascript jquery

我想知道是否可以将onclick事件附加到文档中的特定坐标。也许在图像映射中类似于“区域坐标”的东西可以让我创建一个矩形或圆形区域,当点击它时会执行一些代码。一直试图找到一个解决方案,希望有更好的编码知识的人能够为我澄清这一点。

3 个答案:

答案 0 :(得分:3)

您可以将click事件附加到文档本身,而不是任何特定元素。事件数据应包含单击时的鼠标坐标(clientX和clientY)。

假设没有其他元素截获并取消传播或返回false,则该事件应该冒泡到文档中,您的数据将在那里。

$(document).click(function(ev){
    console.log(ev.clientX, ev.clientY)
})

这将为您提供窗口中的鼠标指针位置。如果您希望它相对于文档的顶部,您需要使用文档的滚动位置进行一些数学运算。

您还可以编写一些代码来过滤掉属于或不属于给定坐标集的点击。

答案 1 :(得分:1)

简答:

答案很长:

您可能可以编写一个插件来执行此操作,但我只想解释其功能。

基本上,你像往常一样绑定到click事件。 确保您绑定的元素可以访问。

然后,循环遍历坐标数组,如果事件位置落在任何坐标中,则称为关联的事件处理程序。

编辑:如果不明显,可以用函数替换“一堆坐标”,或者更确切地说,用数学计算。你可以将一个方程传递给处理程序,该处理程序适用于你想要的任何类型的2d形状。

答案 2 :(得分:0)

不,除非你有一个占据这些坐标的元素。相反,您可以将事件绑定到占用该坐标空间的任何元素,并只检查事件对象中单击的坐标。