Javascript 没有按钮的谷歌地理编码
我试图实现一个没有按钮的地理编码输入元素。i、 用户开始输入地址,然后从谷歌推荐的地址列表中选择想要的地址 在我的代码中,我加载以下内容以启用输入元素的地理编码:Javascript 没有按钮的谷歌地理编码,javascript,jquery,google-maps,geocoding,Javascript,Jquery,Google Maps,Geocoding,我试图实现一个没有按钮的地理编码输入元素。i、 用户开始输入地址,然后从谷歌推荐的地址列表中选择想要的地址 在我的代码中,我加载以下内容以启用输入元素的地理编码: var geocoder = new google.maps.Geocoder; var input = document.getElementById('pac-input'); var autocomplete = new google.maps.places.Autocomplete(input); 这将从潜在地址的输入字段中
var geocoder = new google.maps.Geocoder;
var input = document.getElementById('pac-input');
var autocomplete = new google.maps.places.Autocomplete(input);
这将从潜在地址的输入字段中提供一组下拉列表。当通过向下箭头选择地址,然后按下Enter键时,我使用以下命令捕获Enter键并执行地理编码(而不是使用按钮)
但是,我还想捕获鼠标在其中一个潜在下拉字段上的点击。我正在使用以下命令捕获所有鼠标单击
// capture event for mouse click or ipad input
$(document).on('click', function(e) {
console.log($(this));
var target = $(e.target);
console.log(target[0]);
});
此功能的工作原理与我在鼠标单击时看到的控制台活动完全相同,例如:
[document, context: document]
<input id="pac-input" class="form-control" type="text" placeholder="Enter a location" autocomplete="off">
我明白了。。没有太多的标识符。您的
目标是。
因为这就是您将事件处理程序附加到的-$(文档)
对于捕获所有鼠标点击都很好,但这意味着事件必须在处理之前一直冒泡
为什么不为谷歌的自动完成
使用内置事件处理程序呢?由此:
你说得对,但有了目标,我只得到。。当我点击谷歌推荐地址下拉列表时。这是一个Chrome重启-当我没有看到任何控制台日志时,一定是出了问题。target
应该是var target=e.target代码>然后目标
是您的元素。为什么要目标[0]
?这就是为什么它无论如何都不会出现在控制台中。如果你想要动态地理编码,你必须使用某种事件navigator.geolocation.watchposition()
可能就是您想要的。太棒了!感谢这一点-一旦自动完成,我的代码中有一些修改,但这在Chrome上既可以使用鼠标,也可以使用enter键选择,在iOS上也可以使用触摸事件!
[document, context: document]
<input id="pac-input" class="form-control" type="text" placeholder="Enter a location" autocomplete="off">
$(document).on('click', function(e) {
console.log($(this));
var target = e.target;
console.log(target);
});
google.maps.event.addListener(autoComplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (place.geometry) {
map.panTo(place.geometry.location);
map.setZoom(15);
}
});