Llamando thickbox de un archivo js
Pregunta
Hola estoy tratando de añadir la caja gruesa a una superposición en googlemaps. En mi función onload jQuery que llame a la siguiente función. El mapa funciona bien. Pero cuando no parece ser llamado el cuadro de espesor. Esta es la línea que hace trabajar
<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>
La función entera
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();
}
Solución
Su añadiendo el enlace que desea activar el thickbox al DOM después de la función thickbox ya se ha llamado. Esto se debe a que está creando el enlace de forma dinámica dentro de la función map.openInfoWindowHtml. Es necesario llamar a la función thickbox después de esta función se ha ejecutado.
El problema es que se limitó a los documentos Thickbox y thickbox se constituirá dentro de archivo de thickbox.js tan pronto como las cargas DOM que es demasiado pronto para usted. Se podría tratar de alterar la función setTimeout a esto:
setTimeout(function() { map.openInfoWindowHtml(latlng, display, { maxWidth: 200 }); tb_init('a.thickbox'); }, 0);
No puedo estar 100% seguro de que esto va a funcionar, pero este es el quid de la cuestión.