是否有加载谷歌地图控件的事件?

时间:2011-08-04 17:32:50

标签: javascript google-maps google-maps-api-3

我知道tilesloaded,但控件似乎在该事件后加载。

我基本上希望能够通过jQuery获取控件,但是即使听也找不到正确的。

2 个答案:

答案 0 :(得分:1)

您可以通过在Chrome中按F12并点击时间轴标签来查看正在触发的事件。

答案 1 :(得分:0)

我也刚处理过。没有这样的事件(在控件可见之前空闲和tileloaded 触发器)。

所以,基本上给你的控件添加“特殊控制”类,然后检查它们是否加载了间隔......当jquery返回正长度时,控件完全加载。

function GetTestControl()
{
    var control = document.createElement('div');
    control.className = 'special-control'; // THERE IS THE SPECIAL CLASS
    control.style.margin = '0 0 10px 10px';

    var btn = document.createElement('div');
    btn.innerHTML = '<i  class="fa fa-globe"></i>';
    control.appendChild(btn);

    btn.addEventListener('click', function()
    {
        alert("test");
    });

    return control;
}

google.maps.event.addListener(map, 'tilesloaded', function()
{
    var sinterval = setInterval(function()
    {
        if($('.special-control').length > 0)
        {
            // controls loaded, do whatever you want
            // + stop interval so it doesn't ruin your memory
            clearInterval(sinterval);
        }
    }, 500); // should work perfectly, but you can decrease
});

map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(GetTestControl());

就是这样。