我试图让Google商家信息自动填充API在WorkLight上运行,但看起来有些不对劲。
使用我的电脑浏览器时,一旦我开始输入地点名称,自动填充建议就可以正常工作,我可以选择一个。但是当在移动设备(Android或iPhone)上运行应用程序时,我能够看到自动完成结果,但是当我点击它们时没有任何反应。
我找到了一些js库,可以让GooglePlaces Autocomplete API更容易运行 - 我的意思是,除了在移动设备上(WorkLight / Cordova App)
我还发现有些人报告了cordova的问题。有些人能够通过添加" needclick"来解决问题。谷歌的元素类,但这对我没有用
这是一个用于测试的JS库: http://ubilabs.github.io/geocomplete/
StackOverflow链接及相关问题:
can't tap on item in google autocomplete list on mobile
有没有人知道可能的解决方案?
答案 0 :(得分:2)
我刚尝试过,它对我来说很好。这就是我所做的,如果你做了不同的事情,请告诉我们
"工作正常"我的意思是当我输入文本字段时,我可以看到提供的选项列表,我可以点击其中一个选项,它将填充文本字段。
这是index.html的代码
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>googleplaces</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<!--
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
-->
<link rel="stylesheet" href="css/main.css">
<style type="text/css" media="screen">
form {
background: url(https://developers.google.com/maps/documentation/places/images/powered-by-google-on-white.png) no-repeat center right;
}
</style>
<script>window.$ = window.jQuery = WLJQ;</script>
</head>
<body style="display: none;">
<form>
<input id="geocomplete" type="text" placeholder="Type in an address" size="90" />
<input id="find" type="button" value="find" />
</form>
<script src="js/initOptions.js"></script>
<script src="js/main.js"></script>
<script src="js/messages.js"></script>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/jquery.geocomplete.js"></script>
<script>
$(function(){
$("#geocomplete").geocomplete()
.bind("geocode:result", function(event, result){
$.log("Result: " + result.formatted_address);
})
.bind("geocode:error", function(event, status){
$.log("ERROR: " + status);
})
.bind("geocode:multiple", function(event, results){
$.log("Multiple: " + results.length + " results found");
});
$("#find").click(function(){
$("#geocomplete").trigger("geocode");
});
});
</script>
</body>
</html>
答案 1 :(得分:1)
您是否尝试停止宣传点击事件?
$(&#34; p&#34;)。click(function(event){event.stopPropagation(); // Do 某事});
答案 2 :(得分:1)
尝试停止传播
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.stopImmediatePropagation demo</title>
<style>
p {
height: 30px;
width: 150px;
background-color: #ccf;
}
div {
height: 30px;
width: 150px;
background-color: #cfc;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>paragraph</p>
<div>division</div>
<script>
$( "p" ).click(function( event ) {
event.stopImmediatePropagation();
});
$( "p" ).click(function( event ) {
// This function won't be executed
$( this ).css( "background-color", "#f00" );
});
$( "div" ).click(function( event ) {
// This function will be executed
$( this ).css( "background-color", "#f00" );
});
</script>
</body>
</html>
答案 3 :(得分:1)
如果你使用Ionic,问题是由css属性&#34;指针事件引起的:无&#34;由ionicModal设置;
尝试将此添加到您的css文件中:
.pac-container {
pointer-events:auto;
}