您好我正在尝试将粗框添加到googlemaps中的叠加层。在我的JQuery onload函数上,我调用以下函数。地图工作正常。但是当厚盒子似乎没有被召唤时。这是行的工作
<a href="test.html?keepThis=true&TB_iframe=true&height=250&width=400" title="add a caption to title attribute / or leave blank" class="thickbox">Example 1</a>
整个功能
function load(lat, lng, zlevel, userKey, state) {
map = new GMap2(document.getElementById("map"));
map.disableDoubleClickZoom();
map.setCenter(new GLatLng(lat, lng), zlevel);
if (state) {
dsp = true;
map.addControl(new GLargeMapControl());
GEvent.addListener(map, "click", function(overlay, latlng) {
var zoom = map.getZoom();
var display = '<h5 class="header-flag">Flag</h5><p class="maptext"><a href="#" onclick="javascript:openOverlay(' + latlng.lat() + ',' + latlng.lng() + ',' + zoom + ');">Click here</a> to enter your comment -
<a href="test.html?keepThis=true&TB_iframe=true&height=250&width=400" title="add a caption to title attribute / or leave blank" class="thickbox">Example 1</a></p>';
setTimeout(function() { map.openInfoWindowHtml(latlng, display, { maxWidth: 200 }); }, 0);
});
} else {
}
mgr = new MarkerManager(map);
loadMarkers(userKey);
mgr.refresh();
}
答案 0 :(得分:2)
在调用thickbox函数后,将要激活thickbox的链接添加到DOM。这是因为您在map.openInfoWindowHtml函数中动态创建链接。执行此函数后,需要调用thickbox函数。
麻烦的是,我只是看了一下厚箱文档,并且只要DOM加载了,就会在thickbox.js文件中设置thickbox,这对你来说太早了。您可以尝试将setTimeout函数更改为:
setTimeout(function() { map.openInfoWindowHtml(latlng, display, { maxWidth: 200 }); tb_init('a.thickbox'); }, 0);
我无法100%确定这会奏效,但这是问题的症结所在。