自动完成谷歌地图JS错误



我一直在尝试让自动完成功能与类名一起使用,尽管自从我这样做以来,我无法再添加事件侦听器了?有人有解决方案吗?

这是我的代码

function InitiliazeGoogleSearch() {
 var input = document.getElementsByClassName('js-autocomplete');
 for (i = 0; i < input.length; i++) {
    autocomplete = new google.maps.places.Autocomplete(input[i]);
 }
 google.maps.event.addListener(autocomplete, 'place_changed', function () {
    if(!$('.js-main-filter_wrapper').css('display','block')) {
        $('.js-main-filter_wrapper').slideToggle();
    }
 });
}

在循环中,您正在重新分配autocomplete变量,但您只是将侦听器附加到最后一个变量,因为它在循环之外。要为每个侦听器配备一个侦听器,您需要在循环中使用它。

function InitiliazeGoogleSearch() {
    var input = document.getElementsByClassName('js-autocomplete');
    for (var i = 0; i < input.length; i++) {
        autocomplete = new google.maps.places.Autocomplete(input[i]);
        google.maps.event.addListener(autocomplete, 'place_changed', function() {
            if (!$('.js-main-filter_wrapper').css('display', 'block')) {
                $('.js-main-filter_wrapper').slideToggle();
            }
        });
    }
}

最新更新