未捕获 没有定义元素?

Uncaught No element defined?

我正在使用 gmaps.js。我收到 Uncaught ReferenceError: gmaps.js:205 Uncaught No element defined. 以下屏幕截图显示了 Chrome 如何报告 gmaps Javascripts 中的错误:

但我在 jsfiddle 中确实如此,但在我的本地主机 (XAMPP) 问题上有相同的代码。

    var map = new GMaps({
    el: '#map',
    lat: -12.043333,
    lng: -77.028333,
    click: function(event) {
        map.removeMarkers();
        var lat = event.latLng.lat();
        var lng = event.latLng.lng();
        alert(lat + ', ' + lng);
        map.addMarker({
            lat: lat,
            lng: lng,
            draggable: true,
        });
    }
});
$('select,input').change(function() {
    var searchString = [$('select.Country').val(), $('select.Cities').val(), $('input#SearchDistrict').val()].join(', ');
    alert(searchString);
    GMaps.geocode({
        address: searchString.trim(),
        callback: function(results, status) {
            if (status == 'OK') {
                var latlng = results[0].geometry.location;
                map.setCenter(latlng.lat(), latlng.lng());
                map.addMarker({
                    lat: latlng.lat(),
                    lng: latlng.lng()
                });
            }
        }
    });

});
#map {
      width: 400px;
      height: 400px;
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
  <script src="https://hpneo.github.io/gmaps/gmaps.js"></script>
<form>
    Country:
    <select class="Country">
        <option value="" selected="selected"></option>
        <option value="United States">United States</option>
    </select>
    Cities:
    <select class="Cities">
        <option value="" selected="selected"></option>
        <option value="New York">New York</option>
    </select>
    District:
    <input type="text" id="SearchDistrict">
</form>
        <div class="popin">
          <div id="map"></div>
        </div>

我无法解决这个问题,所以我需要你的 support.What 可以吗?

我已经测试了脚本,它运行良好。只有在您创建地图时 <div id="map"/> 存在时才会出现您看到的错误。

您应该做的是在将地图容器插入DOM树后调用地图创建脚本。

$(document).ready(function(){
  var element =  document.getElementById('map');
    if (typeof(element) != 'undefined' && element != null)
  {
    map = new GMaps({
    div: '#map',
    zoom:,
    lat:,
    lng: ,
  });
  }
});

我也卡在了这个问题,我发现他们是直接找到节点并串行调用函数,问题是上面的元素没有找到它不会进一步compile/run。

mapBasic();
mapMarker();
mapGeolocation();
mapGeocoding();
mapPolylines();
mapPolygone();
mapRoutes();

所以在我们的例子中,如果找不到 mapBasic 元素,则不会执行进一步的代码。

希望对您有所帮助。