“dragend”事件监听器仅在加载(一次)Google Maps时触发

时间:2017-10-11 15:03:00

标签: javascript google-maps events

我确信我的结构错了,但是“dragend”的事件监听器没有触发。当我将事件更改为bounds_changed或center_changed时,它仅在初始页面加载时触发。是否有任何突出的原因,为什么它的表现如此?

我基本上只想在每次重新定位地图时调用我的searchStores()函数,这样它就会对用户产生反应。

    var map;

    $(document).ready(function () {

        var latlng = new google.maps.LatLng(36.2994410, -82.3409052);
        var myOptions = {
            zoom: 12,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        // create the new map with options
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);


        $("#btnSearch").click(function(){
            //Convert Address Into LatLng and Retrieve Address Near by
            convertAddressToLatLng($("#txtAddress").val());
        });

        //send user to print/save view on click
        $("#saveAs").click(function() {
            window.location.href = "https://54.90.210.118/test.html?address=" + $("#txtAddress").val() + '&radius=' + $("#radiusO").val();
        });

        //WHAT IS GOING ON WITH THIS GUY???
        google.maps.event.addListener(map, "dragend", function() {
            alert('map dragged');

        });
    });

    $(document).one('ready', function(){

        // Try HTML5 geolocation.
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                var pos = {
                    lat: position.coords.latitude,
                    lng: position.coords.longitude
                };
                latlngloc = new google.maps.LatLng(pos.lat, pos.lng);
                map.setCenter(pos);
                $("#divStores").html('');
                searchStores(latlngloc);
            }, function() {
                handleLocationError(true, infoWindow, map.getCenter());
            });
        } else {
            // Browser doesn't support Geolocation
            handleLocationError(false, infoWindow, map.getCenter());
        }
    });

1 个答案:

答案 0 :(得分:0)

感谢您的帮助!我发现问题出现在另一个函数上,最终清除了地图对象然后重新创建它。因此删除了监听器。 对于这种混乱感到抱歉,并且感谢你指出它在Jfiddle上有效。我认为这与我如何称呼它有关。 我是Javascript的新手,不得不一点一点地教自己。感谢您的帮助! =)