addDomListener触发'加载'而不是点击'

时间:2014-09-24 15:42:28

标签: google-maps-api-3

Google Maps API v3提供了addDomListener,用于捕获DOM中的事件。我对'click'事件的实现似乎存在于DOM的'load'事件中。

我希望听到有关可能导致此问题的反馈。

<script>
function initialize() {
    var map = new google.maps.Map(document.getElementById('map-canvas'), {
        mapTypeId: google.maps.MapTypeId.TERRAIN
    });

    bounds = addMarkers(buildClosed(), map, 1);

    map.fitBounds(bounds);

    var button = document.getElementById('show_or_hide');
    // google.maps.event.addDomListener( button, 'click', addMarkers(buildOpened(), map, 1) );
    google.maps.event.addDomListener( button, 'click', showAlert(event) );  // returns 'load' event

}

function showAlert(_e) {
    window.alert('Event: ' + _e.type);
}

( all other functions here )

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

</script>

<input id="show_or_hide" type="button" value="Show all crossings" />
<div id="map-canvas"></div>

1 个答案:

答案 0 :(得分:0)

addDomListener需要一个函数指针。如果你提供一个带参数的函数,它会执行该函数并使用返回值作为单击执行的函数。

变化:

google.maps.event.addDomListener( button, 'click', showAlert(event) );

为:

google.maps.event.addDomListener( button, 'click', showAlert);