Вопрос

Привет, я пытаюсь добавить толстую рамку к наложению в Googlemaps.В моей функции загрузки JQuery я вызываю следующую функцию.Карта работает нормально.А вот когда толстый ящик вроде не называется.Это строка, которая работает

<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();
    }
Это было полезно?

Решение

Вы добавляете ссылку, по которой хотите активировать толстое поле, в DOM после того, как функция толстого поля уже была вызвана.Это связано с тем, что вы создаете ссылку динамически внутри функции map.openInfoWindowHtml.Вам необходимо вызвать функцию толстого ящика после выполнения этой функции.

Проблема в том, что я только что просмотрел документацию толстого ящика, и толстое окно настраивается в файле толстого ящика.js, как только загружается DOM, что для вас слишком рано.Вы можете попробовать изменить функцию setTimeout следующим образом:

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

Я не могу быть на 100% уверен, что это сработает, но в этом суть проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top