我的网站出现问题。我需要捕获“mousemove”事件,然后根据事件发生时光标的位置更改提示窗口的位置。这是代码:
google.maps.event.addListener(country, 'mousemove', function(e) {
this.setOptions({fillOpacity: 1});
$('div.info-win').css('top', e.kb.clientY + 20 + 'px');
$('div.info-win').css('left', e.kb.clientX -50 + 'px');
$('div.info-win').show()
});
起初一切正常,但很快浏览器开始显示错误,即 e.kb 未定义。我通过控制台检查了该事件,并意识到“e.kb”确实不存在。相反,有“e.lb”,所以我在代码中更改了它。但现在问题是一样的,控制台显示“e.lb”不存在。我无法解释它,但现在捕获的事件具有“.gb”属性而不是“.lb”。有人可以帮助我并解释为什么这种情况每周都会再次发生,所以我需要始终检查事件属性的名称吗?这是我第一次看到这样的问题,但同时我找不到任何解决方案!
最佳答案
Google map MouseEvent 不提供屏幕 X 和 Y 值。
相反,它似乎只给出鼠标位置的纬度/经度。
引用:
https://developers.google.com/maps/documentation/javascript/reference#MouseEvent https://developers.google.com/maps/documentation/javascript/reference#PolyMouseEvent
您需要将纬度/经度值转换为屏幕鼠标 X/Y 位置,如下所述(类似问题):
Get Position of Mouse Cursor on Mouseover of Google Maps V3 API Marker
关于javascript - 多边形鼠标悬停事件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952432/