在 jquery 个移动面板中集成 google 个位置(自动完成)
integrating google places (autocomplete) within jquery mobile panel
我希望集成 google 的自动完成地点 api(通过 http://maps.googleapis.com/maps/api/js?libraries=places 获取位置建议)。我希望自动完成附加到位于 jquery "panel"(jqm 版本 1.4.2)中的文本输入字段。该面板显然在页面加载时隐藏,并在单击按钮时显示。
郑重声明,当输入不在面板内时,我已经让自动完成功能正常工作。因此,我知道我可以很好地提取 js 文件并且对它的工作原理有一个基本的了解。
我使用以下代码触发自动完成绑定:
var input = document.getElementById('locationSearch');
var options = {
//bounds: defaultBounds,
// types: ['establishment','(cities)']
};
// initiate autosuggest
autocomplete = new google.maps.places.Autocomplete(input, options);
当我查看页面时,自动完成功能不起作用。我在 firebug/etc 中没有收到任何错误。但是,如果我手动 运行 firebug 控制台中的命令,getelementbyid 可以工作,但它在初始化时失败并显示以下错误消息:
TypeError: a[$G] is not a function
D8()main.js... > eval (line 18) R8[I].Ml()main.js... > eval (line 34)
Kl/<()main.js... > eval (line 1) Q/<()main.js (line 15) ag()main.js
(line 27) Kl()main.js... > eval (line 1)
...Y("input"));var
c=a$G;null==c?this.L||a[W]("placeholder",this.H...
http://maps.gstatic.com/maps-api-v3/api/js/20/6/main.js line 375 >
eval line 375 > eval line 375 > eval line 375 > eval
我什至尝试将初始化代码移动到 jqm 面板的 "beforeopen" 中,但是,我得到了相同的结果。我的想法是,面板的创建过程暂时从 DOM 中删除了对象或会破坏自动完成绑定的东西,但这没有帮助。
有什么想法吗?我对从这里去哪里一无所知。
谢谢!
好的,找到答案了。
继续我的调查,我将其切换为尝试在 jqm 弹出模式而不是面板中工作,但仍然没有成功。然而,我更改了我的 google 条款以查找弹出窗口而不是面板,并找到了这个结果:
https://groups.google.com/forum/m/#!topic/google-maps-js-api-v3/GZX0ynQNn1M
G. Tandon(对他自己的问题)的回答中的解决方案对我来说效果很好。原来结果隐藏在面板和弹出模式后面,只需要放在最前面。
谢谢! (还有 g.tandon 的大胜!)
我希望集成 google 的自动完成地点 api(通过 http://maps.googleapis.com/maps/api/js?libraries=places 获取位置建议)。我希望自动完成附加到位于 jquery "panel"(jqm 版本 1.4.2)中的文本输入字段。该面板显然在页面加载时隐藏,并在单击按钮时显示。
郑重声明,当输入不在面板内时,我已经让自动完成功能正常工作。因此,我知道我可以很好地提取 js 文件并且对它的工作原理有一个基本的了解。
我使用以下代码触发自动完成绑定:
var input = document.getElementById('locationSearch');
var options = {
//bounds: defaultBounds,
// types: ['establishment','(cities)']
};
// initiate autosuggest
autocomplete = new google.maps.places.Autocomplete(input, options);
当我查看页面时,自动完成功能不起作用。我在 firebug/etc 中没有收到任何错误。但是,如果我手动 运行 firebug 控制台中的命令,getelementbyid 可以工作,但它在初始化时失败并显示以下错误消息:
TypeError: a[$G] is not a function
D8()main.js... > eval (line 18) R8[I].Ml()main.js... > eval (line 34) Kl/<()main.js... > eval (line 1) Q/<()main.js (line 15) ag()main.js (line 27) Kl()main.js... > eval (line 1)
...Y("input"));var c=a$G;null==c?this.L||a[W]("placeholder",this.H...
http://maps.gstatic.com/maps-api-v3/api/js/20/6/main.js line 375 > eval line 375 > eval line 375 > eval line 375 > eval
我什至尝试将初始化代码移动到 jqm 面板的 "beforeopen" 中,但是,我得到了相同的结果。我的想法是,面板的创建过程暂时从 DOM 中删除了对象或会破坏自动完成绑定的东西,但这没有帮助。
有什么想法吗?我对从这里去哪里一无所知。
谢谢!
好的,找到答案了。
继续我的调查,我将其切换为尝试在 jqm 弹出模式而不是面板中工作,但仍然没有成功。然而,我更改了我的 google 条款以查找弹出窗口而不是面板,并找到了这个结果:
https://groups.google.com/forum/m/#!topic/google-maps-js-api-v3/GZX0ynQNn1M
G. Tandon(对他自己的问题)的回答中的解决方案对我来说效果很好。原来结果隐藏在面板和弹出模式后面,只需要放在最前面。
谢谢! (还有 g.tandon 的大胜!)