调用document.ready之外的ajax函数

时间:2016-04-21 20:26:36

标签: javascript jquery ajax

我正在尝试填充Google地图。这是我的一些代码。为什么这个ajax请求无效?当我把它作为一个匿名函数放在document.ready()中时,它工作正常,但我想重用这段代码,所以我需要能够调用它。

$(document).ready(function(){

    var map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 49.105, lng: -97.568},
        zoom: 4
      });

getTornadoes("test", "test", "yes");            

});

// Get the tornado JSON file
    function getTornadoes (test, test2, test3) {//These are not my real parameters

        $.getJSON('water_pollutants.php', function(data){

            $.each(data.features, function(index, feature){

                var longitude = feature.properties.LONGITUDE;
                var latitude = feature.properties.LATITUDE;
                ...

我收到错误InvalidValueError:setMap:不是Map的实例;而不是StreetViewPanorama的实例。但是,我不认为这是谷歌地图的问题。在尝试引用在document.ready()之外声明的ajax函数时,我曾经遇到过类似的问题。

1 个答案:

答案 0 :(得分:0)

我也使用google maps api,这里有一个建议:

变化

$(document).ready(function(){

      var map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 49.105, lng: -97.568},
        zoom: 4
      });

为:

var map;

$(document).ready(function(){

      map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 49.105, lng: -97.568},
        zoom: 4
      });