3

我试图为鼠标悬停事件提供一个弹出窗口,而不是单击标记,并在它被单击时做一些其他的事情(例如 func)。

我不相信我的半成功代码会帮助您朝那个方向思考:

(我只是在点击事件上添加悬停)

marker[i].on('mouseover', marker[i].bindPopup('hi').openPopup.bind(marker[i]));

[i] 只是代表一个循环


Leaflet 的 API: http: //leaflet.cloudmade.com/reference.html#map-openpopup

4

2 回答 2

10

以下代码在鼠标悬停时显示一个弹出窗口,并在单击标记时执行其他操作:

marker[i].on('mouseover', function(evt) {
  //evt.target is the marker that is being moused over 
  //bindPopup() does not need to be called here if it was already called
  //somewhere else for this marker.
  evt.target.bindPopup('hi').openPopup();
});
marker[i].on('click', function(evt) {
  //again, evt.target will contain the marker that was clicked
  console.log('you clicked a marker');
});
于 2012-10-22T14:27:47.733 回答
1

您没有为 mouseover 事件提供回调。

marker[i].on('mouseover', function () {
    marker[i].bindPopup('hi').openPopup.bind(marker[i])
});

传入一个匿名函数作为你的回调,当它被调用时,它会做你想做的事。

我对传单 api 不是很熟悉(几个月前才开始使用它),所以也可能存在问题marker[i].bindPopup('hi').openPopup.bind(marker[i])

于 2012-10-21T22:55:46.677 回答