2009-10-07 99 views
13

我有一个画布标签来创建一个图形。在我的每一部分,我都有一个“点”来启用“鼠标悬停”并显示更多细节。Canvas中的addEventListener标记

当我没有添加一个事件监听器到这个点时,一切正常。

Firebug的警告我:s.addEventListener不是一个函数...

是否有可能建立动态事件监听器? (我是Javascript新手)

+0

一些代码可以帮助我们... – 2009-10-07 16:35:34

回答

25

您不能将DOM事件附加到除DOM对象(元素)以外的其他东西。 canvas是一个DOM元素,你绘制到画布上的东西不是。它们成为img像素的画布的一部分。

为了检测画布上特定点的点击,您必须在画布元素上附加click事件,然后将点击事件的x/y坐标与画布的坐标进行比较。

这是回答:“How do I get the coordinates of a mouse click on a canvas element?

+0

非常感谢。 我更感兴趣的是在画布上创建其他画布以向它们添加事件侦听器,但它们不可见(也许它们位于主画布后面)。 无论如何,我现在正在寻找一种方法来检测事件比较鼠标的位置。 再次感谢:-) – kadiks 2009-10-08 09:07:10

+0

使用[Easel js框架](http://easeljs.com)这大大简化了将鼠标交互添加到绘制的形状 – Neil 2011-05-19 16:26:23

4

如果你会被绘制基本结构,我建议你使用联SVG的。

在这种情况下,所有svg元素都成为DOM元素,您可以将不同的事件附加到它们中的每个元素。