Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有按钮的谷歌地理编码_Javascript_Jquery_Google Maps_Geocoding - Fatal编程技术网

Javascript 没有按钮的谷歌地理编码

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); 这将从潜在地址的输入字段中

我试图实现一个没有按钮的地理编码输入元素。i、 用户开始输入地址,然后从谷歌推荐的地址列表中选择想要的地址

在我的代码中,我加载以下内容以启用输入元素的地理编码:

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);
  } 
});