javascript - $.getJSON 函数在其他所有操作之后执行

标签 javascript jquery google-maps

我使用以下代码:

function eventListenerTest(event) {
    if (document.getElementById('gem_cvo_select_list')) {
        var address;
        $.getJSON(url, function (data) {
            address = data.rows[0];
            alert("This gets executed afterwards");
        });
        alert("This gets executed first");
        event.infoWindowHtml = "<b>Address: </b>" + address;
    }
}

问题是 $.getJSON 函数在 infoWindow 中使用“address”变量后执行。修改代码如下:

function eventListenerTest(event) {
    if (document.getElementById('gem_cvo_select_list')) {
        var address;
        $.getJSON(url, function (data) {
            address = data.rows[0];
            event.infoWindowHtml = "<b>Address: </b>" + address;
        });
    }
}

“事件”对象似乎无法通过这种方式访问​​(Google map 信息窗口中没有显示任何内容)。我认为我应该能够将“事件”传递给 JSON 内的函数,但我不知道如何实现这一点。

最佳答案

试试这个:

function eventListenerTest(event, callback) {
    if (document.getElementById('gem_cvo_select_list')) {
        var address;
        $.getJSON(url, function (data) {
            address = data.rows[0];
            event.infoWindowHtml = "<b>Address: </b>" + address;
            callback();
        });
    }
}

然后:

eventListenerTest(event, function(){
     // you will use updated event object here
});

关于javascript - $.getJSON 函数在其他所有操作之后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768223/

相关文章:

javascript - Bootstrap 4 : Modal won't show on my react app

javascript:如何将 Uint8Array 数据转换为 JS 对象

javascript - 通过单击按钮翻转缩略图

javascript - 滚动一次调用函数

jquery - 如何在 jQuery 中处理按钮点击事件?

javascript - 拖放后将 Google Map Marker 的新纬度和经度保存到文本框

java - 尝试在 Android 上使用 Google map 时出现异常

javascript - phonegap + ionic 使用 Content-Security-Policy 加载 maps.googleapis.com,如何?

javascript - 语法错误: missing ; before statement when inside for loop

jquery:检查多个列表中的重复项