javascript - 在 addListener 中传递谷歌事件数据

标签 javascript jquery google-maps-api-3 google-places-api

我有可变数量的文本字段,我正在动态初始化 Google map 自动完成功能。

问题是每次触发 place_changed 事件时,我都需要确切地知道它是在哪个输入框上触发的。如何将此数据传递到我的 saveLocation 函数?

目前,事件 评估为未定义。

  initAutocomplete = function (element) {
        autocomplete = new google.maps.places.Autocomplete(
            /** @type {!HTMLInputElement} */(element), {});

        autocomplete.addListener('place_changed', saveLocation);
    },

    saveLocation = function (event) {
        console.log(event);
        var place = autocomplete.getPlace();
    },

最佳答案

可能的方法:

var initAutocomplete = function (element) {
  var autocomplete = new google.maps.places.Autocomplete(element);
  google.maps.event.addListener(autocomplete,
                                'place_changed', 
                                function(){saveLocation.call(autocomplete,element)});
},

saveLocation = function (element) {
        document.getElementsByTagName('code')[0]
          .innerHTML=element.getAttribute('name');
        var place = this.getPlace();
        
};

google.maps.event.addDomListener(window, 'load', function(){
  var inputs=document.querySelectorAll('.pac');
  for(var i=0;i<inputs.length;++i){
    initAutocomplete(inputs.item(i));
  }
});
<code></code><br/>
<input class="pac"  name="field1">field1<br/>
<input class="pac"  name="field2">field2<br/>
<input class="pac"  name="field3">field3<br/>

<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places"></script>

关于javascript - 在 addListener 中传递谷歌事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36385559/

相关文章:

javascript - 多个异步回调 javascript 如何解决这个问题?

javascript - 要反转的 Y 轴

javascript - 如何使用 let 声明作为表达式?

javascript - 如何使用 jquery 查找和检查树中的所有动态子复选框?

javascript - 如何使用 LatLng 数据放大 LatLngBounds 框

PHP 重写 AJAX post 请求

javascript - HTML Knockout 使用 Unicode 将 FontAwesome 图标添加到表格中

javascript - 禁用位置 :fixed on scrolling when 250px from bottom of the page

javascript - Google map API v3 绘图管理器未正确绘制虚线折线

javascript - 如何在同一个谷歌地图上创建多个多边形?