-1

我对此进行了相当多的研究,并发现了任何东西。我是一个新手程序员,所以也许有一个解决方案,但我并没有真正注意到它。

我有一个谷歌地点自动完成框,我用它来让用户将地点添加到谷歌地图上。用户可以用箭头向下选择想要的位置,然后按回车键添加它。

我想要做的是让地图平移到用户按下 shift+enter 时选择的位置。我试过但无济于事。

这是自动完成框的原始侦听器:

google.maps.event.addListener(autoCompleteBox, 'place_changed', onPlaceChanged);

这是我一直在尝试编辑它的方式:

google.maps.event.addListener(autoCompleteBox, 'place_changed', function(){
    if ($('#searchTextField').keyup(function (event) {
        if (event.keyCode == 13 && event.shiftKey) {
            var place= autoCompleteBox.getPlace();
            _map.setCenter(place.getPosition()); 
            console.log("logged shift enter");
        }
     });
else {
    onPlaceChanged();
}

});

在此先感谢您的帮助!

4

1 回答 1

0

假设您的 autoCompleteBox 是 google.maps.places.Autocomplete 类的实例,该对象不会向 place_changed 事件的事件侦听器发送任何参数,因此您的事件对象可能只存在于 Internet Explorer 中,(因为在 IE 中它是全球的)。除此之外,如果地点已经改变并且触发了 place_changed 事件,则用户不再按下任何键。如果您想使用事件对象中包含的信息,那么您应该从头开始构建您自己的 autoCompleteBox,而不是使用 API 中的那个。可以肯定的是,请尝试console.log("Fired")在函数的第一行,在 if() 语句之前添加另一个。

于 2012-09-03T11:44:04.813 回答