在addListener中传递Google事件数据 [英] Passing google event data in addListener
本文介绍了在addListener中传递Google事件数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要动态初始化Google Maps自动完成功能的文本字段数目不定.
I have a variable number of text fields to which I am initialising Google Maps Autocomplete dynamically.
问题在于,每次触发 place_changed 事件时,我都需要确切地知道触发了哪个输入框.如何将这些数据传递到我的 saveLocation 函数?
The problem is that every time the place_changed event is fired, I need to know exactly which input box it was fired on. How can I pass this data to my saveLocation function?
当前,事件的值为未定义.
Currently, event evaluates to undefined.
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>
这篇关于在addListener中传递Google事件数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文