设置内容时,将其设置为:
var content = '<div id="gWindow"><a data-apply="fancybox.iframe fancybox-effects-b" data-origin="iframe.html?panoid='+ pano +'" title="' + name + ' - ' + city + ', ' + street + '" href="javascript:;"><div id="gImgWrap"><img src="http://maps.googleapis.com/maps/api/streetview?size=300x200&fov=120&heading=350&pitch=-2&pano=' + pano + '&sensor=false" /></div></a><div id="gWrap"><h3>' + name + '</h3><span id="gCity">' + city + '</span>, ' + street + '<br /><span id="gRest">' + 'Darba laiks: ' + time + '<br />' + 'Cena: ' + price + ' EUR' + '<br /><a href="http://' + web + '" target="_blank">' + web + '</a></span></div></div>';
然后在定义你的事件时扩展它,这样就没有重叠
google.maps.event.addListener(marker, 'click', (function(marker, content) {
return function() {
infobox.setContent(content);
infobox.open(map, marker);
resetMapClickEvents();
}
})(marker, content));
最后添加重置命令
var resetMapClickEventsIndex = 0, resetMapClickEvents = function(){
// because you reset event after ever info box created,
// make sure it gets recreted when reupdated
// and does not recreate if fancy is triggered
resetMapClickEventsIndex++;
$('[data-origin]').unbind().bind('click', function(){
if($(this).data('index') !== resetMapClickEventsIndex){
$(this).data('index', resetMapClickEventsIndex)
$(this).fancybox({
type: 'iframe',
href: $(this).data('origin'),
modal: true,
transitionIn: 'elastic',
transitionOut: 'elastic',
speedIn: 600,
speedOut: 200
});
$(this).trigger('click');
}
});
};
没有试过代码,但这应该给你我理论的概念。