Google功能和addDomListener

时间:2015-07-15 20:57:55

标签: jquery google-maps-api-3

我已设置代码显示没有错误,但我是新手。特别 addDomListener职位。

var GoogleMap1 = function() {

    return {

        initMap: function() {
            (function(jQuery) {

                jQuery(document).ready(function() {

                    var myLatlng = new google.maps.LatLng(-25.363882, 131.044922);
                    var mapOptions = {
                        zoom: 4,
                        center: myLatlng
                    }
                    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

                    var marker = new google.maps.Marker({
                        position: myLatlng,
                        map: map,
                        title: 'Hello World!'
                    });

                    google.maps.event.addDomListener(window, 'load', initialize);

                });

            })(jQuery);
        }

    };
}();

这是正确的还是可以改进的,特别是行:google.maps.event.addDomListener(window, 'load', initialize);

addDomListener的参考URL实际上是 https://developers.google.com/maps/documentation/javascript/examples/marker-simple

目前这将是一个错误,我想避免使用像ddDomListener这样的解决方案:

  

错误:TypeError:element为null Line:   element.parentNode.removeChild(元件);

需要帮助。

1 个答案:

答案 0 :(得分:0)

另一种方法是向运行初始化函数的google脚本添加回调。

<script type="text/javascript"
        src="https://maps.googleapis.com/maps/api/js?v=3.exp&callback=initialize"></script>

然后创建初始化函数并将其附加到window object

var map;
window.initialize  = function () {
  var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
  var mapOptions = {
    zoom: 4,
    center: myLatlng
 }
 map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: 'Hello World!'
  });
}

请注意,地图已在函数外部初始化,因此可以在以后使用。 有了这个,就不需要指定要监听的事件。 一旦谷歌地图脚本完全加载,它就会调用回调函数。