-1

私はこれをかなり調べて、何かを見つけました。私は初心者プログラマーなので、解決策があるかもしれませんが、実際には気づきませんでした。

ユーザーがGoogleマップに場所を追加するために使用するGoogle Placesオートコンプリートボックスがあります。ユーザーは目的の場所を矢印で下に選択し、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 イベントが発生した場合、ユーザーはキーを押していません。イベント オブジェクトに含まれる情報を使用する場合は、API からの情報を使用する代わりに、独自の autoCompleteBox を最初から構築する必要があります。確かconsole.log("Fired")に、if() ステートメントの前に、関数の最初の行に別の行を追加してみてください。

于 2012-09-03T11:44:04.813 に答える