如何关闭事件监听器中打开的InfoBubble?

时间:2014-03-24 09:58:17

标签: here-api

在我的页面中,我有一些标记,我想在悬停时在每个标记上显示标题。这在Google地图中很简单,因为我们使用title对象的google.maps.Marker()参数。我无法在Here Maps中找到任何类似的东西,我决定制作一个简单的,类似的。

现在我有一个nokia.maps.map.Container(),其中包含一个信息,一个标记和两个事件:mouseentermouseleave。我可以在mouseenter事件中打开信息,但我无法在mouseleave事件中将其关闭。我试图使用closeBubble(),但我没有成功。

到目前为止,这是我工作的小提琴:http://jsfiddle.net/ffAKX/

当鼠标离开标记对象时,如何关闭打开的信息块?或者是否有任何简单的方法来执行title google.maps.Marker()对象的{{1}}参数?

1 个答案:

答案 0 :(得分:2)

可以找到InfoBubbles组件上的文档here。如果查看closeBubble()方法,可以看到它需要一个气泡句柄作为参数。需要记住以前的openBubble()

var infoBubbles = new nokia.maps.map.component.InfoBubbles(),
    bubble;

map.components.add(infoBubbles);
container = new nokia.maps.map.Container();

container.addListener("mouseenter" ,  function(evt) {
    bubble =infoBubbles.openBubble(evt.target.html, evt.target.coordinate);   
}, false);

container.addListener("mouseleave" ,  function(evt) {
    infoBubbles.closeBubble(bubble); // I need to close infoBubble here
});

结果非常类似于工具提示,可以在HERE地图社区页面上找到实际的tooltip component