首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在addListener中传递google事件数据

在addListener中传递google事件数据
EN

Stack Overflow用户
提问于 2016-04-03 12:44:49
回答 1查看 917关注 0票数 4

我有一个可变数量的文本字段,我正在初始化谷歌地图自动完成动态。

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

当前,事件的计算结果为未定义。

代码语言:javascript
复制
  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();
    },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 13:08:57

可能的办法:

代码语言:javascript
复制
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));
  }
});
代码语言:javascript
复制
<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>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36385559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档