2010-02-08 54 views
1

所以我重写我的第一个谷歌地图应用程序,我在看我如何创建信息窗口点击一个标记,它似乎非常不可能为每个添加一个侦听器。以前我用过GInfoWindow和EBubble(http://econym.org.uk/gmap/ebubble.htm)。谷歌地图和jQuery InfoWindow替换

我想我可以使用jQuery来显示动态数据的div,如果我有一个钩子为每个标记来显示窗口和相关标记信息(从JSON拉出)。我可以看到每个标记都有唯一的标识(例如mtgt_unnamed_2822),但我不确定如何预测此标记。

有没有人尝试过,或知道如何去呢?

感谢 丹尼斯

回答

1

我不知道的jQuery,但JavaScript允许你自己的自定义属性添加到任何对象。所以,你可以写这样的东西:

var marker = new GMarker(...); 
    marker.ID = "mtgt_unnamed_2822"; 

function createMarker(point,newid) { 
    var marker = new GMarker(point); 
    marker.ID = newid; 
    ... 
} 

要小心,不要使用“marker.id”因为API可以使用“ID”的混淆内部名称为现有财产在未来的一些版本中。事实上,避免使用小写字母开头的属性名称。

将.ID属性附加到标记后,只要您需要它来进行jQuery调用,就可以从任何标记引用的marker.ID中读取信息。

+0

感谢迈克,但我正在寻找其他方式在这里。我想访问google标记id(不是marker.id,试过),这样我就可以为jQuery选择添加一个泛型类,并且assoiciate也将id与它的特定数据相关联。这将允许我使用基于jQuery类的选择器,我认为这会比为每个标记添加侦听器更快。我有道理吗? – 2010-02-10 11:56:45

+0

我不知道jQuery,所以我并不完全关注你。 是否有助于创建标记ID的全局“关联数组”? var marker = new GMarker(point); idarray(newid)= marker; 然后idarray(“mtgt_unnamed_2822”)将是对具有该ID的标记的引用。 我知道在Javascript中它们不是真正的“关联数组”,但它们可以完全像我从其他语言所了解和喜爱的真正关联数组那样使用,所以这就是我喜欢的方式。 – 2010-02-12 09:14:59