我正在使用gmap.js,我正在尝试在我创建的叠加标记上创建鼠标悬停事件。
继承人jsFiddle - > http://jsfiddle.net/LXv87/
查看documentation - 这是我可以想到尝试创建mouseOver事件但最不合理的方式:
var map;
$(document).ready(function(){
map = new GMaps({
el: '#map',
lat: 29.425967,
lng: -98.486142,
zoom:12,
zoomControl : true,
zoomControlOpt: {
style : 'SMALL',
position: 'TOP_LEFT'
},
panControl : false,
streetViewControl : false,
mapTypeControl: false,
overviewMapControl: false
});
map.drawOverlay({
lat: 29.425967,
lng: -98.486142,
events: {
mouseover:function() {
alert("The Alamo");
}
},
content: "<div class='masterpin bounce'></div><div class='pulse'></div>"
});
});
任何人都可以帮忙吗?任何建议表示赞赏。谢谢!
答案 0 :(得分:1)
一个选项是将onmouseover和onmouseout函数添加到包含叠加层的div:
var map;
var infowindow = new google.maps.InfoWindow();
function mouseover() {
infowindow.setContent("Mouse");
infowindow.setPosition(new google.maps.LatLng(29.425967,-98.486142));
infowindow.setOptions({pixelOffset:new google.maps.Size(-14,-16)});
infowindow.open(map);
};
function mouseout() {
infowindow.close();
};
$(document).ready(function () {
map = new GMaps({
el: '#map',
lat: 29.425967,
lng: -98.486142,
zoom: 12,
zoomControl: true,
zoomControlOpt: {
style: 'SMALL',
position: 'TOP_LEFT'
},
panControl: false,
streetViewControl: false,
mapTypeControl: false,
overviewMapControl: false
});
map.drawOverlay({
lat: 29.425967,
lng: -98.486142
},
content: "<div class='masterpin bounce' onmouseover='mouseover();' onmouseout='mouseout();'></div><div class='pulse'></div>"
});
});
答案 1 :(得分:0)
您可以在叠加层就绪事件触发时将侦听器添加到元素中,而不是像其他答案建议一样创建全局函数。
var overlay = map.drawOverlay({
lat: 29.425967,
lng: -98.486142,
layer: 'overlayMouseTarget',
content: '<div>my overlay</div>'
});
overlay.addListener('ready', function () {
overlay.el.addEventListener('mouseover', function (e) {
console.log("mouseover");
});
});