Frage

Hallo ich versuche, in Googlemaps dicke Box zu einem Overlay hinzuzufügen. Auf meiner JQuery onload Funktion aufrufen ich die folgende Funktion. Die Karte funktioniert gut. Aber wenn die dicke Box scheint nicht genannt zu werden. Das ist die Linie, das funktioniert

<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>

Die ganze Funktion

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();
    }
War es hilfreich?

Lösung

Ihre Hinzufügen der Link, der Sie die thickbox auf das DOM aktiviert werden soll, nachdem die thickbox Funktion bereits aufgerufen wurde. Dies liegt daran, dass Sie auf den Link dynamisch innerhalb der map.openInfoWindowHtml Funktion erstellen. Sie müssen die thickbox Funktion aufrufen, nachdem diese Funktion ausgeführt wurde.

Das Problem ist ich an dem thickbox docs nur an und thickbox wird eingerichtet innerhalb der thickbox.js, sobald die DOM Lasten Datei, die für Sie zu früh ist. Sie könnten versuchen, die setTimeout-Funktion, dies zu ändern:

setTimeout(function() { map.openInfoWindowHtml(latlng, display, { maxWidth: 200 }); tb_init('a.thickbox'); }, 0);

Ich kann nicht 100% sicher sein, dies funktionieren wird, aber das ist der Kern des Problems.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top