Google maps 使Shadowbox.js在多个InfoWindow中工作
我尝试在多个内部使用:Google maps 使Shadowbox.js在多个InfoWindow中工作,google-maps,infowindow,shadowbox,Google Maps,Infowindow,Shadowbox,我尝试在多个内部使用: 函数初始化(){ //创建地图 var map=newgoogle.maps.map(…); //创建标记 var marker=newgoogle.maps.marker(…); var marker2=新的google.maps.Marker(…); //创建信息窗口 var infoWindow=new google.maps.infoWindow(); //将标记链接到信息窗口 google.maps.event.addListener(标记'click',函数(
函数初始化(){
//创建地图
var map=newgoogle.maps.map(…);
//创建标记
var marker=newgoogle.maps.marker(…);
var marker2=新的google.maps.Marker(…);
//创建信息窗口
var infoWindow=new google.maps.infoWindow();
//将标记链接到信息窗口
google.maps.event.addListener(标记'click',函数(){
infoWindow.setContent(“”);
信息窗口。打开(地图、标记);
});
google.maps.event.addListener(marker2,'click',function(){
infoWindow.setContent(“”);
打开(地图,标记2);
});
//启用阴影盒
google.maps.event.addListener(infoWindow,'domready',function(){
Shadowbox.init({
产能过剩:0.8
});
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
正如您所看到的,我已经成功地使其工作,但仅限于第一个InfoWindow
这似乎是由我的事件附件引起的,我正在使用
domready
:
google.maps.event.addListener(infoWindow, 'domready', function() {});
我找不到其他方法为每个InfoWindow
都“重新设置”阴影框
有什么建议吗?像往常一样,我在写下问题几分钟后就找到了我正在寻找的解决方案……
要在每个
InfoWindow
上运行Shadowbox
:您需要手动调用Shadowbox player
使用自定义类而不是rel=shadowbox
:
<a href="http://placehold.it/200x200.jpg" class="dyn-shadowbox">
Shadowbox link
</a>
google.maps.event.addListener(infoWindow, 'domready', function() {
var dynlinks = document.getElementsByClassName('dyn-shadowbox');
var n = dynlinks.length;
for (var i = 0; i < n; i++) {
var link = dynlinks[i];
link.removeEventListener('click');
link.addEventListener('click', function(ev) {
ev.preventDefault();
Shadowbox.open({
link: link,
content: link.getAttribute('href'),
player: 'img',
title: ''
});
});
}
});