簡體   English   中英

谷歌地圖 API 自動完成

[英]Google Maps API Autocomplete

我正在使用 Google Maps API 自動完成(Places API)和 JavaScript。

輸入3個字符后如何運行自動完成?

這是我的代碼:

function initAutocomplete() {
    var input = $('#autocomplete')[0];

    var autocomplete = new google.maps.places.Autocomplete(input);
    autocomplete.addListener('place_changed', {
        gPlace = autocomplete.getPlace();
    });

    var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;

    function addEventListenerWrapper(type, listener) {
        if (type == "keydown") {
            var orig_listener = listener;

            listener = function(event) {
                var suggestion_selected = $(".pac-item-selected").length > 0;

                if (event.which == 13 && !suggestion_selected) {
                    var simulated_downarrow = $.Event("keydown", {keyCode:40, which:40})
                    orig_listener.apply(input, [simulated_downarrow]);
                }

                orig_listener.apply(input, [event]);
            };
        }
        _addEventListener.apply(input, [type, listener]);
    }

    if (input.addEventListener) {
        input.addEventListener = addEventListenerWrapper;
    } else if (input.attachEvent) {
        input.attachEvent = addEventListenerWrapper;
    }
}

我希望我清楚地解釋了我的問題。 先感謝您。

您可以在 3 個字符后參考以下方法使用 Google Maps API 自動完成功能:

function initAutocomplete() {
    var input = $('#autocomplete')[0];

    var autocomplete = new google.maps.places.Autocomplete(input);
    autocomplete.addListener('place_changed', {
        gPlace = autocomplete.getPlace();
    });

    var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;

    function addEventListenerWrapper(type, listener) {
        if (type == "keydown") {
            var orig_listener = listener;

            listener = function(event) {
                var suggestion_selected = $(".pac-item-selected").length > 0;

                if (event.which == 13 && !suggestion_selected) {
                    var simulated_downarrow = $.Event("keydown", {keyCode:40, which:40})
                    orig_listener.apply(input, [simulated_downarrow]);
                }

                orig_listener.apply(input, [event]);
            };
        }
        _addEventListener.apply(input, [type, listener]);
    }

    if (input.addEventListener) {
        input.addEventListener = addEventListenerWrapper;
    } else if (input.attachEvent) {
        input.attachEvent = addEventListenerWrapper;
    }
    return false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM