javascript - Google map API 找不到 $(document).ready 中定义的回调

标签 javascript jquery google-maps

我在使用 Jquery 和 Google Maps API 时遇到问题。

脚本似乎在 html 中正确定位

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="js/main.js"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=KEY&callback=initMap"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/stomp.js/2.3.3/stomp.min.js"></script>

问题是 init 映射在 $(document).ready 内部

$(document).ready(function () {
    let url = "ws://localhost:61614/";
    let topic = "stomp.topic";
    let client;

    let map, trackers = {};

    $("#connect_button").click(function () {
        connect(url);
        return false;
    });

    $("#disconnect_button").click(function () {
        disconnect();
        return false;
    });

    function initMap() {
        let mapOptions = {
            zoom: 8,
            center: new google.maps.LatLng(30, 0),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map"), mapOptions)

    }
}

必须如何正确访问 initMap?

最佳答案

我认为您忘记调用 initMap 函数。

试试这个 - https://jsitor.com/227rClFCE ,

脚本路径中的回调https://maps.googleapis.com/maps/api/js?key=KEY&callback=initMap将查找全局方法名称initMap ,但是它不是全局定义的,并且范围在 document.ready 范围内,因此它不会执行。要么调用 document.ready 回调中的方法,要么在 Window 对象中添加此方法后,通过执行 下面的 Window.initMap = initMap 操作initMap 函数。

关于javascript - Google map API 找不到 $(document).ready 中定义的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54097845/

相关文章:

javascript - 第一次点击将不起作用

jQuery 验证不以 0 或 1 开头的数字

android - 在谷歌地图中禁用自动缩放

jquery - Bootstrap 困境。调整 Google map 大小

javascript - 无法使用图形 API 将照片发布到 Facebook

javascript - Firestore/Rxfire - 查询集合然后订阅子可观察数组

Javascript,Firefox 在没有 document.write 的情况下替换整个文档

javascript - 通过每个循环创建具有多个属性的对象

javascript - 定位 anchor 标记后页面跳转回顶部

javascript - 更改标记图标